添加的onclick听者到Android [英] Add Onclick listner to android
问题描述
我在使用ADT版本22.0。
我添加了一个O单击监听器onCreate方法里面的按钮。
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
计数器= 0;
添加=(按钮)findViewById(R.id.bAdd);
分=(按钮)findViewById(R.id.bSub);
显示器=(TextView中)findViewById(R.id.tvDisplay);
add.setOnClickListener(新View.OnClickListener(){
@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
}
});
如果(savedInstanceState == NULL){
getSupportFragmentManager()的BeginTransaction()
。新增(R.id.container,新PlaceholderFragment())
。承诺();
}
}
当我添加的onclick监听器像上面应用程序崩溃。
这是我的日志目录的错误。
1月四日日至22日:08:36.900:I /编舞(836):跳过33帧!该应用程序可能会做它的主线程的工作太多了。
一月四号至22日:08:37.460:D / gralloc_goldfish(836):没有GPU的仿真模拟器检测。
2月四号至22日:27:35.010:D / AndroidRuntime(1183):关闭虚拟机
2月四号至22日:27:35.010:W / dalvikvm(1183):主题ID = 1:螺纹退出与未捕获的异常(组= 0xb2a9fba8)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):致命异常:主要
2月四号至22日:27:35.020:E / AndroidRuntime(1183):工艺:com.example.androidtest,PID:1183
2月四号至22日:27:35.020:E / AndroidRuntime(1183):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.androidtest / com.example.androidtest.MainActivity}:显示java.lang.NullPointerException
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.os.Handler.dispatchMessage(Handler.java:102)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.os.Looper.loop(Looper.java:136)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.main(ActivityThread.java:5017)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在java.lang.reflect.Method.invokeNative(本机方法)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在java.lang.reflect.Method.invoke(Method.java:515)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在dalvik.system.NativeStart.main(本机方法)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):由:显示java.lang.NullPointerException
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.example.androidtest.MainActivity.onCreate(MainActivity.java:36)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.Activity.performCreate(Activity.java:5231)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):11 ...更多
难道我不能添加的onclick监听器里onCreate方法 请帮助这个
LogCat中的图莎尔纳朗的答案
二月四号至22日:27:35.020:E / AndroidRuntime(1183):致命异常:主要
2月四号至22日:27:35.020:E / AndroidRuntime(1183):工艺:com.example.androidtest,PID:1183
2月四号至22日:27:35.020:E / AndroidRuntime(1183):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.example.androidtest / com.example.androidtest.MainActivity}:显示java.lang.NullPointerException
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.access $ 800(ActivityThread.java:135)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.os.Handler.dispatchMessage(Handler.java:102)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.os.Looper.loop(Looper.java:136)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.main(ActivityThread.java:5017)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在java.lang.reflect.Method.invokeNative(本机方法)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在java.lang.reflect.Method.invoke(Method.java:515)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:779)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在dalvik.system.NativeStart.main(本机方法)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):由:显示java.lang.NullPointerException
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在com.example.androidtest.MainActivity.onCreate(MainActivity.java:36)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.Activity.performCreate(Activity.java:5231)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
2月四号至22日:27:35.020:E / AndroidRuntime(1183):11 ...更多
这是主要的巨星文件
< XML版本=1.0编码=UTF-8&GT?;
<舱单的xmlns:机器人=http://schemas.android.com/apk/res/android包=com.example.androidtest安卓版code =1机器人:VERSIONNAME =1.0 >
<用途-SDK
安卓的minSdkVersion =8
机器人:targetSdkVersion =19/>
<应用
机器人:allowBackup =真
机器人:图标=@可绘制/ ic_launcher
机器人:标签=@字符串/ APP_NAME
机器人:主题=@风格/ AppTheme>
<活动
机器人:名称=com.example.androidtest.MainActivity
机器人:标签=@字符串/ APP_NAME>
<意向滤光器>
<作用机器人:名称=android.intent.action.MAIN/>
<类机器人:名称=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT;
< /用途>
< /舱单>
LayoutFile
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:以下属性来=@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=com.example.androidtest.MainActivity $ PlaceholderFragment>
<的TextView
机器人:ID =@ + ID / tvDisplay
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文本=你总为0
机器人:TEXTSIZE =30dp
机器人:layout_gravity =中心
机器人:重力=中心/>
<按钮
机器人:ID =@ + ID / BADD
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文本=增加一个/>
<按钮
机器人:ID =@ + ID / bSub
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文本=Substract一/>
< / LinearLayout中>
请检查此,请确保您编辑按钮或TextView的
名称公共静态类PlaceholderFragment扩展片段{
私人TextView的txtSensor;
公共PlaceholderFragment(){
}
@覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState){
查看rootView = inflater.inflate(R.layout.fragment_dashboard,集装箱,假);
txtSensor =(TextView中)rootView.findViewById(R.id.txtSensor);
txtSensor.setOnClickListener(新View.OnClickListener(){
@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
}
});
返回rootView;
}
如果这还不奏效,请发表您的code
I am using Adt version 22.0.
I added an oclick listener to a button inside onCreate method.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter=0;
add=(Button)findViewById(R.id.bAdd);
sub=(Button)findViewById(R.id.bSub);
display=(TextView)findViewById(R.id.tvDisplay);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}
When I add onclick listener like above Application crashes.
This is my log Cat error.
04-22 01:08:36.900: I/Choreographer(836): Skipped 33 frames! The application may be doing too much work on its main thread.
04-22 01:08:37.460: D/gralloc_goldfish(836): Emulator without GPU emulation detected.
04-22 02:27:35.010: D/AndroidRuntime(1183): Shutting down VM
04-22 02:27:35.010: W/dalvikvm(1183): threadid=1: thread exiting with uncaught exception (group=0xb2a9fba8)
04-22 02:27:35.020: E/AndroidRuntime(1183): FATAL EXCEPTION: main
04-22 02:27:35.020: E/AndroidRuntime(1183): Process: com.example.androidtest, PID: 1183
04-22 02:27:35.020: E/AndroidRuntime(1183): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidtest/com.example.androidtest.MainActivity}: java.lang.NullPointerException
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.os.Handler.dispatchMessage(Handler.java:102)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.os.Looper.loop(Looper.java:136)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-22 02:27:35.020: E/AndroidRuntime(1183): at java.lang.reflect.Method.invokeNative(Native Method)
04-22 02:27:35.020: E/AndroidRuntime(1183): at java.lang.reflect.Method.invoke(Method.java:515)
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-22 02:27:35.020: E/AndroidRuntime(1183): at dalvik.system.NativeStart.main(Native Method)
04-22 02:27:35.020: E/AndroidRuntime(1183): Caused by: java.lang.NullPointerException
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.example.androidtest.MainActivity.onCreate(MainActivity.java:36)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.Activity.performCreate(Activity.java:5231)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-22 02:27:35.020: E/AndroidRuntime(1183): ... 11 more
Could not I add onclick listener inside oncreate method Please help with this
LogCat for tushar narang's answer
04-22 02:27:35.020: E/AndroidRuntime(1183): FATAL EXCEPTION: main
04-22 02:27:35.020: E/AndroidRuntime(1183): Process: com.example.androidtest, PID: 1183
04-22 02:27:35.020: E/AndroidRuntime(1183): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidtest/com.example.androidtest.MainActivity}: java.lang.NullPointerException
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.os.Handler.dispatchMessage(Handler.java:102)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.os.Looper.loop(Looper.java:136)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-22 02:27:35.020: E/AndroidRuntime(1183): at java.lang.reflect.Method.invokeNative(Native Method)
04-22 02:27:35.020: E/AndroidRuntime(1183): at java.lang.reflect.Method.invoke(Method.java:515)
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:595)
04-22 02:27:35.020: E/AndroidRuntime(1183): at dalvik.system.NativeStart.main(Native Method)
04-22 02:27:35.020: E/AndroidRuntime(1183): Caused by: java.lang.NullPointerException
04-22 02:27:35.020: E/AndroidRuntime(1183): at com.example.androidtest.MainActivity.onCreate(MainActivity.java:36)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.Activity.performCreate(Activity.java:5231)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-22 02:27:35.020: E/AndroidRuntime(1183): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-22 02:27:35.020: E/AndroidRuntime(1183): ... 11 more
This is the main fest file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.androidtest" android:versionCode="1" android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.androidtest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
LayoutFile
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.androidtest.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/tvDisplay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Your Total is 0"
android:textSize="30dp"
android:layout_gravity="center"
android:gravity="center" />
<Button
android:id="@+id/bAdd"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Add one"/>
<Button
android:id="@+id/bSub"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Substract one"/>
</LinearLayout>
Please check this ,make sure you edit the names for buttons or textview
public static class PlaceholderFragment extends Fragment {
private TextView txtSensor ;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_dashboard, container, false);
txtSensor = (TextView)rootView.findViewById(R.id.txtSensor);
txtSensor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
return rootView;
}
If this doesn't work please post your code
这篇关于添加的onclick听者到Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!