-2

インテントを使用して別のアクティビティを呼び出すと、nullpointer 例外が発生します。

意図

public void ShowEvent(View view){
        Intent intent = new Intent(this, Getclicker.class);
         date = (TextView)findViewById(R.id.textView2);
        String datevalue = date.getText().toString();
        userSelection=(TextView)findViewById(R.id.textView1);
        String Userselectvalue = userSelection.getText().toString();

        intent.putExtra(EXTRA_MESSAGE, datevalue);
        intent.putExtra(EXTRA_MESSAGE1, Userselectvalue);

        startActivity(intent);
    }

Getclicker.java

package example.events1;

import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.widget.ListView;

public class Getclicker  extends ListActivity {

    classdbOpenHelper eventsData1;
    Cursor cursor1;
     ListView listView ; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        Intent intent = getIntent();
        String datevalue = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE);
        String Userselectvalue = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE1);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);                       


         cursor1 = eventsData1.getContact(datevalue,Userselectvalue);
         String[] fromColumns = {classdbOpenHelper.KEY_EVENT};
         int[] toViews = {R.id.event};
         SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.events, cursor1, fromColumns, toViews,0 );
          listView = getListView(); 
         listView.setAdapter(adapter);
        }

    public void onDestroy() {
        eventsData1.close();
      }
}

ログキャット

08-07 11:52:54.445: E/Trace(2926): error opening trace file: No such file or directory (2)
08-07 11:52:58.564: E/AndroidRuntime(2926): FATAL EXCEPTION: main
08-07 11:52:58.564: E/AndroidRuntime(2926): java.lang.RuntimeException: Unable to start activity ComponentInfo{example.events1/example.events1.Getclicker}: java.lang.NullPointerException
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.os.Looper.loop(Looper.java:137)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread.main(ActivityThread.java:5041)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at java.lang.reflect.Method.invokeNative(Native Method)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at java.lang.reflect.Method.invoke(Method.java:511)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at dalvik.system.NativeStart.main(Native Method)
08-07 11:52:58.564: E/AndroidRuntime(2926): Caused by: java.lang.NullPointerException
08-07 11:52:58.564: E/AndroidRuntime(2926):     at example.events1.Getclicker.onCreate(Getclicker.java:28)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.Activity.performCreate(Activity.java:5104)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
08-07 11:52:58.564: E/AndroidRuntime(2926):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
08-07 11:52:58.564: E/AndroidRuntime(2926):     ... 11 more
4

3 に答える 3

1

どこで初期化していて、どこで使用しているのかわかりませんeventsData1:

cursor1 = eventsData1.getContact(datevalue,Userselectvalue);

これにより、null ポインター例外が発生する可能性があります。

于 2013-08-07T12:11:31.717 に答える
0

Getclicker Activty で静的な値が null になるはずなので、この方法を試すことができます。なので鍵として使用。

    intent.putExtra("EXTRA_MESSAGE", datevalue);
    intent.putExtra("EXTRA_MESSAGE1", Userselectvalue);

この方法で値を取得します

@Override
    public void onCreate(Bundle savedInstanceState) {
        Intent intent = getIntent();
        String datevalue = intent.getStringExtra("EXTRA_MESSAGE");
        String Userselectvalue = intent.getStringExtra("EXTRA_MESSAGE1");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
于 2013-08-07T12:09:06.233 に答える
0

まず、アクティビティのレイアウトを作成する必要があります--

setContentView() 最初に値を取得します

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);  
    Intent intent = getIntent();
    String datevalue = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE);
    String Userselectvalue = intent.getStringExtra(FirstActivity.EXTRA_MESSAGE1);

また、コードでeventsData1を初期化します。null 値を持つことができます。

于 2013-08-07T12:12:43.457 に答える