1

のテキストの設定でエラーが発生する理由をお聞きしたいと思いますTextView。ここでは初心者用レイアウトを表示していますが、テキストビューは私のゲームプレイ レイアウトにあります。それは可能ですか?これが私のコードです:

public class Beginner extends Activity 
{

    Button beginner1, beginner2;
    TextView category;

    @Override
    protected void onCreate(Bundle MainPage) 
    {
        super.onCreate(MainPage);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.beginner);

        beginner1 = (Button) findViewById(R.id.btnBeginner1);
        beginner2 = (Button) findViewById(R.id.btnBeginner2);

        beginner1.setOnClickListener(myOnlyhandler);
        beginner2.setOnClickListener(myOnlyhandler);

        category = (TextView) findViewById(R.id.tvCategory);

    }

    View.OnClickListener myOnlyhandler = new View.OnClickListener(){

    @Override
    public void onClick(View v) 
    {
        // TODO Auto-generated method stub
        switch(v.getId()) {
        case R.id.btnBeginner1:
            Intent openBeginner = new Intent("com.thesis.logipic.GAMEPLAY");
            startActivity(openBeginner);
            category.setText("Category");
        break;
        case R.id.btnBeginner2:
            Intent openBeginner2 = new Intent("com.thesis.logipic.GAMEPLAY");
            startActivity(openBeginner2);  
            category.setText("Category");
        break;
        }
    }
    };

}

そして、これは私のLogcatからのエラーです:

10-08 21:26:30.486: D/AndroidRuntime(1019): Shutting down VM
10-08 21:26:30.486: W/dalvikvm(1019): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
10-08 21:26:30.506: E/AndroidRuntime(1019): FATAL EXCEPTION: main
10-08 21:26:30.506: E/AndroidRuntime(1019): java.lang.NullPointerException
10-08 21:26:30.506: E/AndroidRuntime(1019):     at com.thesis.logipic.Beginner$1.onClick(Beginner.java:42)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.view.View.performClick(View.java:2408)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.view.View$PerformClick.run(View.java:8816)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.os.Handler.handleCallback(Handler.java:587)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.os.Looper.loop(Looper.java:123)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at java.lang.reflect.Method.invokeNative(Native Method)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at java.lang.reflect.Method.invoke(Method.java:521)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-08 21:26:30.506: E/AndroidRuntime(1019):     at dalvik.system.NativeStart.main(Native Method)
10-08 21:26:32.466: I/Process(1019): Sending signal. PID: 1019 SIG: 9
4

5 に答える 5

0

おっしゃるとおり、レイアウトが違いますね。それにアクセスするには、最初に膨らませる必要があります。

または、 TextView を R.layout.beginner レイアウトに移動することもできます。

于 2013-10-08T13:46:22.437 に答える
0

setContentView で初期化していない他のリソースにアクセスすることはできません。同じレイアウトで使用しなかった理由を教えてください。

于 2013-10-08T13:38:57.427 に答える
0

startActivity() の前に category.setText("Category") を置きます

于 2013-10-08T13:31:28.723 に答える
0

膨らませた初心者レイアウトにないTextView " tvCategory "の ID を介して参照を行っています。2 番目のアクティビティがロードされたら、なぜこれを行わないのですか? またはデフォルトでXML内ですか?

于 2013-10-08T13:50:30.490 に答える