2012-04-02 6 views
2

誰かがこれを手伝うことができますか?私はAlertDialogボックスと正常に動作しますが、警告ダイアログがポップアップするとラジオボタンの1つが自動的にチェックされます。AlertDialogを使用してラジオボタンを選択する方法は?

たとえば、警告ダイアログボックスがポップアップすると、「10分」がチェックされます。

どうすればよいですか?

以下は私の作業コードです。

final CharSequence[] deleteFilesBy = {"5 minutes","10 minutes", "15 minutes"}; 
AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Delete Files by?") 
        .setSingleChoiceItems(deleteFilesBy,-1, new DialogInterface.OnClickListener() 
         { 
          @Override 
          public void onClick(DialogInterface dialog, int which) 
          { 
           if(deleteFilesBy[which]=="5 minutes") 
           { 
            // do something 
           } 
           else if (deleteFilesBy[which]=="10 minutes") 
           { 
            // do something 
           } 
           else if (deleteFilesBy[which]=="15 minutes") 
           { 
            // do something 
           } 
           dialog.dismiss(); 
          } 
         }).setNeutralButton("Cancel", new DialogInterface.OnClickListener() { 

          @Override 
          public void onClick(DialogInterface arg0, int arg1) { 
           // TODO Auto-generated method stub 
           arg0.dismiss(); 
          } 
         }); 

       AlertDialog alert = builder.create(); 
       alert.show(); 

お願いします!

おかげ

RJUY

+0

が重複する可能性...あなたが望むようにチェック項目を設定[Androidでラジオボタンを設定する方法](http://stackoverflow.com/questions)/4134582/how-to-set-radio-button-in-android) –

答えて

2

TestRadio.java:

package com.dave.kelley; 



import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.RadioButton; 

public class TestRadioActivity extends Activity { 

    int timeSetting = 0; 
    RadioButton radio0; 
    RadioButton radio1; 
    RadioButton radio2; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(listener); 
     radio0 = (RadioButton) findViewById(R.id.radio0); 
     radio1 = (RadioButton) findViewById(R.id.radio1); 
     radio2 = (RadioButton) findViewById(R.id.radio2); 
    } 

    public OnClickListener listener = new OnClickListener() { 
     public void onClick(View v) { 
      if (timeSetting == 0) { 
       radio0.setChecked(true); 
       radio1.setChecked(false);radio2.setChecked(false); 
      } 
      if (timeSetting == 1) { 
       radio1.setChecked(true); 
       radio0.setChecked(false);radio2.setChecked(false); 
      } 
      if (timeSetting == 2) { 
       radio2.setChecked(true); 
       radio0.setChecked(false);radio1.setChecked(false); 
      } 
      timeSetting++; 
      if(timeSetting == 3 || timeSetting > 3) { 
       timeSetting = 0; 
      } 
     } 
    }; 
} 

main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <RadioGroup 
     android:id="@+id/radioGroup1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <RadioButton 
      android:id="@+id/radio0" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:checked="true" 
      android:text="RadioButton" /> 

     <RadioButton 
      android:id="@+id/radio1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="RadioButton" /> 

     <RadioButton 
      android:id="@+id/radio2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="RadioButton" /> 

    </RadioGroup> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" /> 

</LinearLayout> 
+0

これは、AlertDialogを表示したい場合にこのクラスを呼び出すことを意味します。例えば、 "show dialog box"ボタンをクリックしますか?インテントのようにi =新しいインテント(TestRadioActivity.class、this); startActivity(i); – user1306165

+0

いいえ、これは私が示唆しているようなものを説明するためのものです。 Alert Dialogを作成して表示するコードがある場合は、次のものが必要です。LayoutInflater inflater = getLayoutInflater(); View v = inflater.inflate(R.layout.MAKEANXMLFILETHATLOOKSHOWYOUWANTYOURDIALOGTOLOOK); alert.setLayout(v); alert.show(); – Davek804

+0

ああ、私は今それを得る。どうもありがとう! – user1306165

0

あなたはXMLで行うことができます。

   <RadioButton 
        android:id="@+id/radio1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:checked="true" 
        android:text="@string/sA" /> 

       <RadioButton 
        android:id="@+id/radio2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/A" /> 

       <RadioButton 
        android:id="@+id/radio3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/D" /> 

       <RadioButton 
        android:id="@+id/radio4" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/sD" /> 
      </RadioGroup> 

最初のラジオボタン、Radio1のは、属性のアンドロイドを持っている:= "true" をチェックします。つまり、ロードすると、そのラジオがデフォルトになり、ユーザーはもちろんそれを変更することができます。

EDIT:

よりプログラム的なアプローチ:

int timeSetting = 1;//say 0 = 5; 1=10; 2=15 (set this elsewhere in your code based 
    //on how you have predetermined the time length 
    RadioButton radio0 = (RadioButton) findViewById(R.id.radio0); 
    RadioButton radio1 = (RadioButton) findViewById(R.id.radio1); 
    RadioButton radio2 = (RadioButton) findViewById(R.id.radio2); 

    if (timeSetting == 0) { 
     radio0.setChecked(true); 
     radio1.setChecked(false);radio2.setChecked(false); 
    } 
    if (timeSetting == 1) { 
     radio1.setChecked(true); 
     radio0.setChecked(false);radio2.setChecked(false); 
    } 
    if (timeSetting == 2) { 
     radio2.setChecked(true); 
     radio0.setChecked(false);radio1.setChecked(false); 
    } 
+0

しかし、私はそれを動的にチェックすることです。私は、データベースに値を保存し、alertdailogがポップアップするたびにデータベースにクエリを行い、データベースに保存されているデータを基にしたコードを持っていますラジオボタンを動的にチェックしました。 私はすでにデータを保存し、データベース内のデータを取得するコードを持っていますが。私が今直面している唯一の問題は、ラジオボタンを動的にチェックする方法です。あなたの返信をありがとう... – user1306165

+0

私の編集を見て、それはあなたが必要なものに近いですか? – Davek804

+0

これはありがとうございます。つまり、まだXMLファイルを作成する必要がありますか?上記のあなたのポストのような? AlertDialogをどのように初期化しますか?つまり、実装を変更する必要がありますか?ありがとう – user1306165

1

これはそれを行う必要があります。

​​
+0

私はAlertDialogのためのXMLファイルがないので、これは今動作すると思います。 AlertDialogは上記のコードを使用して作成されました。私は確信していません。ありがとう – user1306165

1

はただの

builder.setTitle("Delete Files by?") 
       .setSingleChoiceItems(deleteFilesBy, WHICH ITEM YOU WANT , new DialogInterface.OnClickListener() 
関連する問題