0

このコードがnullPointerExceptionをスローする理由がわかりません。私はコードのこの部分を書いておらず、このスタッフとはかなり新しいです。頑張ったのですが、答えが見つかりませんでした。

public class ProgramExamActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        
    setContentView(R.layout.main);
    setTitle("Screen #1");
}
public void onClick(View v) {       
    switch(v.getId()) {     
        case R.id.btn2:
                setContentView(R.layout.screen2);
                setTitle("Screen #2");
                break;
    }
}
4

2 に答える 2

2

まず、これ

setContentView(R.layout.screen2);
setTitle("Screen #2");

できません。これを2回以上呼び出すべきではありません。

そして第二に、あなたが使用したいのであればOnClickListener、あなたはそれをいくつかのために登録する必要がwidgetあり、あなたのコードには何かがありますwidget

あなたの場合、リスナーを匿名クラスとして扱いView.OnClickListenerたくない場合は、クラスを実装する必要があります

public class Program... extends Activity implements View.OnClickListener { ... }

次に、次のように登録する必要があります。

Button btn = (Button) findViewById(R.id.btn2);
btn.setOnClickListener(this);

注:Activity別のタイトルとコンテンツで開始する場合は、を使用Intentsして呼び出す必要がありますstartActivity()

インテントの詳細とチュートリアルAndroid:アクティビティを切り替える方法があります。

于 2012-07-07T12:07:36.463 に答える
0

クリックイベントのリスナーを追加

public class ProgramExamActivity extends Activity implements OnClickListener{

次に、コンポーネントをこのリスナーに登録します。btn1 のような任意のボタンにクリックを追加するとします。次に、OnCreate にコードを追加します

btn1.setOnClickListener(ProgramExamActivity.this);
于 2012-07-07T12:15:30.807 に答える