没有得到烤面包在单击微调项目

问题描述:

public class MainActivity extends AppCompatActivity { 

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

     Spinner s = new Spinner(this); 

     RelativeLayout rl = (RelativeLayout) 
     findViewById(R.id.activity_main); 

     String ss[] = {"--Select Item--", "Item1", "Item2", "Item3", 
         "Item4", "Item5"}; 

     ArrayAdapter<String> ad = new ArrayAdapter<String>(this, 
          android.R.layout.simple_dropdown_item_1line, ss); 

     s.setAdapter(ad); 


     rl.addView(s); 


     s.setOnLongClickListener(new View.OnLongClickListener() { 
      @Override 
      public boolean onLongClick(View v) { 

       TextView t = (TextView) v; 
       Toast.makeText(MainActivity.this, t.getText().toString(), 
           Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
     }); 
} 

} 

当我长时间在微调项目上,我没有得到任何吐司,应该来代码指定它如此。此外,当长时间按下微调器本身(而不是微调器下拉列表中的项目)时,该应用程序崩溃。为什么?没有得到烤面包在单击微调项目

编辑1:

s.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
       TextView t = (TextView) view; 
       Toast.makeText(MainActivity.this, t.getText().toString(), Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
     }); 

当使用setOnItemLongClickListener代替setOnLongClickListener然后长按当项目在旋转的下拉列表中应该产生一个烤面包,但它是不会放弃这样的吗?

+0

你有没有试过想把任何字符串例如Toast消息中的“Hello Toast”,而不是使用t.getText(),看看它是否有效? –

+0

@AaronThompson是的,没有任何反应 –

longClickListener设置为Spinner类,您将该视图强制转换为侦听器中的TextView。这就是为什么该应用程序崩溃。

Spinner.setOnLongClickListener不是每个适配器项目的侦听器。

你在找什么是Spinner.setOnItemSelectedListener(new OnItemSelectedListener())

+0

非常感谢....知道了 –

+0

还有一个疑问,当我使用setOnItemLongClickListener()时,它应该给吐司,当我长时间按下微调项目,但它不会来。我正在编辑中添加该代码。请也澄清一下。提前感谢 –