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

    }

上記のコードでヌル ポインター例外エラーが発生します。認証クラスで 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 sett も試しました。メインクラスと 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

settstaticを作成するだけで、インスタンスは必要ありません

于 2012-12-18T16:48:42.870 に答える