2013-12-18 3 views
-1

Я пытаюсь открыть другое действие с помощью кнопки «Настроить на кнопке». Но приложение сбой каждый раз при запуске.Android: сбой приложения при запуске (открытие на кнопке)

IntentTest.java:

package com.example.intenttest; 

public class IntentTest extends Activity { 

Button b1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_intent_test); 

    b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent intent2 = new Intent(IntentTest.this, IntentTest2.class); 
      startActivity(intent2); 
     } 
    }); 

    } 

} 

IntentTest2.java:

package com.example.intenttest; 

public class IntentTest2 extends Activity { 

TextView textView1; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_intent_test2); 
    textView1=(TextView)findViewById(R.id.textView1); 
    } 
} 

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.intenttest" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.intenttest.IntentTest" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:label="@string/app_name" android:name="com.example.intenttest.IntentTest2" /> 
</application> 

</manifest> 

Вот LogCat где приложение падает:

12-18 11:59:59.563: W/Trace(20985): error opening trace file: No such file or directory (2) 
12-18 11:59:59.623: D/AndroidRuntime(20985): Shutting down VM 
12-18 11:59:59.623: W/dalvikvm(20985): threadid=1: thread exiting with uncaught exception (group=0x40c8d930) 
12-18 11:59:59.633: E/AndroidRuntime(20985): FATAL EXCEPTION: main 
12-18 11:59:59.633: E/AndroidRuntime(20985): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.intenttest/com.example.intenttest.IntentTest}: java.lang.NullPointerException 

Я не могу узнать, что это не так. Пожалуйста помоги.

+0

Инициализировать вашу кнопку b1 с помощью b1 = (кнопка) findViewById (R.id.b1); –

+0

X- | Теперь я чувствую смущение. Как я мог это пропустить. Большое спасибо. –

ответ

3

Потому что вы не инициализировать b1(Button)

b1 = (Button)findViewById(R.id.button_id); 

b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent intent2 = new Intent(IntentTest.this, IntentTest2.class); 
      startActivity(intent2); 
     } 
    }); 
+0

Как я мог пропустить это. Большое спасибо! –

+0

@AniketKapse принимаю мои ан. – Hariharan

+0

да я. Я должен ждать еще одну минуту :) –

0

вы забыли initialze объект кнопки в IntentTest

b1=(Button)findViewById(R.id.b1); 

как этот путь с вашей кнопки ид.

0

Вы не инициализировать кнопку b1 в классе IntentTest,

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_intent_test); 
    b1=(Button)findViewById(R.id.your_btn_name); 
    b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      Intent intent2 = new Intent(IntentTest.this, IntentTest2.class); 
      startActivity(intent2); 
     } 
    }); 

    } 
0

Кнопка b1 не инициализирован. Так что это нулевое значение.

0

Fisrt инициализировать кнопку

Button b1 = (Button)findViewById(R.id.Buttonid); 
b1.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     Intent intent2 = new Intent(IntentTest.this, IntentTest2.class); 
     startActivity(intent2); 
    } 
}); 

еще непосредственно использовать как этот

findViewById(R.id.Buttonid).setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 

     Intent intent2 = new Intent(IntentTest.this, IntentTest2.class); 
     startActivity(intent2); 
    } 
}); 
Смежные вопросы