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

由于您想在单击后打印列表元素,因此使用微调器会很困难,因为默认情况下,android 会在微调器的第 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 回答