0

主要课程

public class Main extends Activity {
    Button login;
    TextView sett;

    @Override
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TextView sett = (TextView) findViewById(R.id.textView1);
        Button login = (Button) findViewById(R.id.login);
    
        login.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent i = new Intent(
                           Main.this,
                           Authenticate.class);
                    startActivity(i);
            }
// remaining code.......

认证类(被调用类)

public class Authenticate extends Activity {
Main Instance = new Main();

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.authenticate);  

    new Thread(new Runnable() {
        public void run() {             
       Instance.sett.setText("activity started, thread started, success!!");
            
            
    }
        }).start();

    }

上面的代码出现空指针异常错误。如果在 authentication 类中定义了 textview 变量,则代码运行成功,

日志猫

      12-18 16:49:15.219: D/dalvikvm(2747): GC_CONCURRENT freed 1901K, 41% free 2990K/5032K,       paused 8ms+95ms, total 181ms
   12-18 16:49:15.330: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0
   12-18 16:49:15.330: W/dalvikvm(2747): threadid=11: thread exiting with uncaught exception (group=0x40a70930)
    12-18 16:49:15.339: E/AndroidRuntime(2747): FATAL EXCEPTION: Thread-198
    12-18 16:49:15.339: E/AndroidRuntime(2747): java.lang.NullPointerException
    12-18 16:49:15.339: E/AndroidRuntime(2747):     at com.example.myproject.Authenticate$1.run(Authenticate.java:21)
   12-18 16:49:15.339: E/AndroidRuntime(2747):  at java.lang.Thread.run(Thread.java:856)
    12-18 16:49:15.359: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0
     12-18 16:49:15.359: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0
     12-18 16:49:15.379: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0
    12-18 16:49:15.379: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0
   12-18 16:49:15.419: W/Trace(2747): Unexpected value from nativeGetEnabledTags: 0

还尝试了静态 TextView 设置;在主类和 Main.sett.setText("活动开始,线程开始,成功!!"); 在验证类文件中仍然出现空指针错误

4

3 回答 3

0

为什么不将 TextView 中的文本作为额外的字符串发送。

Intent i = new Intent(Main.this, Authenticate.class);
i.putExtra("textNeeded", sett.getText().toString());
startActivity(i);

在身份验证活动中,您可以在 onCreate() 中使用它来获取文本:

String text = getIntent.getStringExtra("textNeeded");
于 2012-12-18T17:50:46.793 回答
0

您不能使用new. 执行此操作的正确方法是启动 Authenticate 活动,startActivityForResult()然后在身份验证成功时完成并发送回结果。

文档

于 2012-12-18T16:48:39.777 回答
-2

只需 make settstatic然后你就不需要实例

于 2012-12-18T16:48:42.870 回答