2011-11-10 11 views
0

現在、私はボタンをクリックするとスワップする複数のレイアウトファイルを持つAndroidアプリケーションを作成しています。現在、問題が発生しています。私は、ユーザーが複数のラジオボタンを持つAlertDialogを開くボタンをクリックし、1つを選択してからOkを押します。これにより、グローバルに設定されますCharSequenceその後、彼らは彼らが欲しいものであると確信したら、次の画面に行くために完了します。ここに完了ボタンのコードがあります。レイアウトを変更するボタンをクリックするAndroidで

<Button android:layout_height="wrap_content" android:id="@+id/doneEventButton"  android:text="@string/doneEventButton" android:layout_width="138dp" android:onClick="nextEvent"></Button> 

nextEventのコードは次のとおりです。ここで

public void nextEvent() 
{ 
    if (eventVarString == "Send A Text") 
    { 
     setContentView(R.layout.send_text); 
    } 
    else if (eventVarString == "Make A Call") 
    { 
     setContentView(R.layout.make_call); 
    } 
    else if (eventVarString == "Open An App") 
    { 
     setContentView(R.layout.open_app); 
    } 
    else if (eventVarString == "Send An Email") 
    { 
     setContentView(R.layout.send_email); 
    } 
    else if (eventVarString == "Go To A Website") 
    { 
     setContentView(R.layout.go_to_a_website); 
    } 
} 

はAlertDialogをポップアップし、グローバル変数を設定するコードです。

public void typeOfEvent(View v) 
{ 
     final CharSequence[] items = {"Send A Text", "Make A Call", "Open An App", "Send An Email", "Go To A Website"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(SchedulerActivity.this); 
     builder.setTitle("Choose An Event"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 
       eventVarString = items[item]; 
     Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     builder.setPositiveButton("Yes", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
      TextView addEventVarText = (TextView) findViewById(R.id.eventChosen); 
      addEventVarText.setText(eventVarString); 
      Toast.makeText(SchedulerActivity.this, "Success", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     builder.setNegativeButton("No", 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
      Toast.makeText(SchedulerActivity.this, "Fail", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
} 

ここでは、完了ボタンをクリックすると強制終了から生成されるLogCatがあります。

Pastebin.com

答えて

2

イベントハンドラにパラメータViewを追加します。

public void nextEvent(View view) 
+0

とても簡単です。私はそれを逃したとは信じられません。ありがとう! – Cistoran