0

私は次のコードを持っています:

spin.setAdapter(new ArrayAdapter<String>(Activity.this,
                                    android.R.layout.simple_spinner_item,result));
spin.setOnItemSelectedListener(new OnItemSelectedListener() {
String selected;
boolean click=false;
int currSelection =spin.getLastVisiblePosition();
public void onItemSelected(
AdapterView<?> parentView,View selectedItemView, int position,long id)
{
   if ((position != 0)){
  //code here
    }
}

リストの最初の要素をクリックすると、値を取得できません。残りのすべてのlist elements作業は期待どおりです。

問題はそのint値の位置であることを私は知っています。問題は、if条件がない場合、リストのどの項目もクリックしていなくても、すべてのタイプでリストを開始すると、最初の要素がポップアップすることです。これを解決する方法は?

4

1 に答える 1

0

クリック後にリスト要素を印刷したいので、スピナーでは難しいでしょう。アンドロイドはデフォルトでスピナーの最初の要素を0番目の位置で選択し、その要素を選択せず​​に印刷するからです。

そのために、スピナーの代わりにアラート ダイアログを使用することをお勧めします。スピナーの代わりにボタンを使用し、ボタンの onClick() を使用してアラート ダイアログを作成します。例を以下に示します。

スピナー アイテムの文字列配列を作成します。

String[] element = {Your element List};
private OnClickListener btn_Listener = new OnClickListener() {

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
        builder.setTitle("Set your Button Name");

            builder.setSingleChoiceItems(itemsForHindi, -1,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int item) {                             
                            alertDialog.dismiss();
                            selectedParam = element[item].toString(); // Here you can get selected ielement.                                
                        }
                    });
        }           
        alertDialog = builder.create();
        alertDialog.show();
    }
}; 

疑問がある場合は、私に尋ねてください。

于 2012-07-24T12:27:49.770 に答える