添加的onclick听者到Android [英] Add Onclick listner to android

查看:186
本文介绍了添加的onclick听者到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:机器人=htt​​p://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:机器人=htt​​p://schemas.android.com/apk/res/android
的xmlns:工具=htt​​p://schemas.android.com/tool​​s
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:以下属性来=@扪/ activity_horizo​​ntal_margin
机器人:paddingRight =@扪/ activity_horizo​​ntal_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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆