以下代码可以正常运行,但是当我使用Toast.makeText(this,((TextView) view).getText().toString(), 2000).show();
时会发生错误我不知道为什么。我尝试使用Toast.makeText(this.parent,((TextView) view).getText().toString(), 2000).show();
,这也会导致错误。
private void InitControl() {
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,
nameList.toArray(new String[nameList.size()]));
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerFolder.setAdapter(adapter1);
spinnerFolder.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this,
((TextView) view).getText().toString(), 2000).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
答案 0 :(得分:0)
尝试使用,
Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
答案 1 :(得分:0)
因为您在无效的上下文中运行它,MainActicity.this
无法显示吐司。
在侦听器之外定义上下文,如
final Context context = this; //'this' should be your activity
并且在侦听器内部调用像
这样的toast Toast.makeText(context,
((TextView) view).getText().toString(), 2000).show();
另外,最合适的方法是定义自己的类来实现OnItemClickListener
,定义一个Context
成员变量并在构造函数中设置它。
答案 2 :(得分:0)
请尝试以下操作:
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Toast.makeText(getApplicationContext(), lv.getAdapter().getItem(pos).toString(), 2000).show();
快乐编码
答案 3 :(得分:0)
替换
(TextView) view).getText().toString()
通过
spinnerFolder.getSelectedItem().toString()
答案 4 :(得分:0)
Toast持续时间不是您放置的值,以秒或毫秒为单位,它是您必须设置的标志,您必须放置LENGTH_SHORT或LENGTH_LONG。这是标志,如果你需要更长的持续时间然后是length_long,你将不得不使用notifications