2016-12-26 1 views
0

複数のチェックボックスを1つのボックスにしかチェックできないボックスに切り替える方法はありますか?setSingleChoiceItemsとsetPositiveButton Android

ここで私はダイアログアラートボックスとsinglechoice-multichoiceを使って解決しようとしているものです。

新しい年!

public class MainActivity extends Activity { 

CharSequence[] items = {"FIT", "Fakultet za menadzment", "Fakultet digitalnih umetnosti"}; 
private String selectedItem; 
public int proba; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

} 

private void launchWebPage(String url){ 
    Intent i = new Intent(Intent.ACTION_VIEW); 
    i.setData(Uri.parse(url)); 
    startActivity(i); 
} 

public void dialog(View v){ 
    showDialog(0); 
} 

public void dialog1(View v){ 
    Toast.makeText(getBaseContext(), "Nema deklarisanu funkciju.", Toast.LENGTH_LONG).show(); 
} 

public void dialog2(View v){ 
    Toast.makeText(getBaseContext(), "Nema deklarisanu funkciju.", Toast.LENGTH_LONG).show(); 
} 


public Dialog onCreateDialog(final int id) { 

      final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 
      builder.setTitle("Odabir"); 
      builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 

          selectedItem = (String) items[i]; 
          proba = i; 


         } 
        }); 
        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int position) { 

          Toast.makeText(getBaseContext(), "Test", Toast.LENGTH_SHORT).show(); 

         } 
        }); 
      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        Toast.makeText(getBaseContext(), "Cancel pritisnuto!", Toast.LENGTH_SHORT).show(); 
       } 
      }); 

      builder.show(); 

    return null; 
} 

} 

答えて

2

setSingleChoiceItems() on AlertDialog.Builderの品種のいずれかを使用します。ドキュメントの内容にもかかわらず、これはチェックボックスではなくラジオボタンを使用する必要があります。

+0

私はsetSingleChoiceItems()で動作させましたが、問題は、クリックしたときではなく、OKボタンを押した後でなければならないということです。そこで私は壁に当たった。 – Beansolder

+1

@Beansolder: 'setSingleChoiceItems()'に渡す 'DialogInterface.Listener'を無視します。 AFAIKでは、ダイアログはまだ開いたままになっているため、ユーザーがダイアログを完全に受け入れるかキャンセルするときに反応することができます。 – CommonsWare

+0

コードを編集しました。問題は、私はポジティブボタンでITEMSを呼び出すことができないと私は多分私は複数の選択肢を置くことができますし、OKを押すと、それが選択されたサイトの1つを意図しているので、私が何を意味するのか分かる? – Beansolder

0

誰かがこれに似たものを必要とする場合は、最後に分かりましたが、これは不足しているコードです。