2014-03-13 35 views
0

我創建微調程序微調顯示完美的下拉列表,但當我點擊螞蟻項不顯示Toast消息時,我調試不是去微調內部單擊方法在我的代碼中有什麼錯?微調項目將顯示,但點擊事件不工作什麼是錯的?以編程方式創建微調工作點擊

public class MainActivity extends Activity { 
Spinner spinner; 

String[] strings = { "Power Options", "Power off", "Restart" }; 

String[] subs = { "", "Shut phone down", "Close all apps and restart phone" }; 

int arr_images[] = { R.drawable.ic_launcher, R.drawable.ic_launcher, 
     R.drawable.ic_launcher }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

     spinner = new Spinner(this); 
    spinner.setAdapter(new MyAdapter(this, R.layout.row, strings)); 

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
    { 

     public void onItemSelected(AdapterView<?> adapterView, View view, 
       int i, long l) { 
      // TODO Auto-generated method stub 

      if (i == 1) { 

    Toast.makeText(MainActivity.this, "PowerOff Perform", 
         Toast.LENGTH_SHORT).show(); 
      } 

      if (i == 2) { 

       Toast.makeText(MainActivity.this, "Reboot Perform", 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 

     // If no option selected 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 
     } 
    }); 
} 

public class MyAdapter extends ArrayAdapter<String> { 

    public MyAdapter(Context context, int textViewResourceId, 
      String[] objects) { 
     super(context, textViewResourceId, objects); 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, 
      ViewGroup parent) { 

     return getCustomView(position, convertView, parent); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     return getCustomView(position, convertView, parent); 
    } 

    public View getCustomView(int position, View convertView, 
      ViewGroup parent) { 

     LayoutInflater inflater = getLayoutInflater(); 
     View row = inflater.inflate(R.layout.row, parent, false); 
     TextView label = (TextView) row.findViewById(R.id.company); 
     label.setText(strings[position]); 

     TextView sub = (TextView) row.findViewById(R.id.sub); 
     sub.setText(subs[position]); 

     ImageView icon = (ImageView) row.findViewById(R.id.image); 
     icon.setImageResource(arr_images[position]); 

     return row; 
    } 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (KeyEvent.KEYCODE_BACK == event.getKeyCode()) { 

     spinner.performClick(); 

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+1

格式的代碼,這是不可能的閱讀 –

回答

0

也許使用setOnItemClickListener而不是setOnItemSelectedListener?

嘗試使用

spinner.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(final AdapterView<?> arg0, final View arg1, final int arg2, final long arg3) { 
     } 
    }); 

代替

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
    { 

     public void onItemSelected(AdapterView<?> adapterView, View view, 
       int i, long l) {... 
+0

當我用佈局spiner是做工精細這樣的微調=(微調)findViewById(R。 id.spinner1);然後相同的代碼工作正常 – user3416078

+0

我編輯我的答案,讓我知道如果有幫助 – androidseb

+0

我說我的微調工作完美,如果你在我的佈局和cal使用微調像這個微調=(微調)findViewById(R.id.spinner1); 當我使用像這樣的程序旋轉微調=新的微調(這);微調不執行點擊事件 – user3416078

相關問題