-2

当我使用意图调用另一个活动时,它会给出一个空指针异常。

意图

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);

这可能会导致空指针异常。

于 2013-08-07T12:11:31.717 回答
0

您可以尝试这种方式,因为静态值应该在 Getclicker Activty 中为空。所以用作钥匙。

    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,它可以有空值。

于 2013-08-07T12:12:43.457 回答