0

下面的代码可以正常运行,但是我使用的时候会报错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

        }
});
4

5 回答 5

0

尝试使用,

Toast.makeText(getApplicationContext(),parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();
于 2013-05-16T08:21:52.797 回答
0

因为您在无效上下文中运行它,MainActicity.this所以对于显示敬酒无效。

在侦听器之外定义一个上下文,例如

final Context context = this; //'this' should be your activity

并在听众内部调用吐司

 Toast.makeText(context,
                    ((TextView) view).getText().toString(), 2000).show();

此外,最合适的方法是定义您自己的实现 的类OnItemClickListener,定义一个Context成员变量并将其设置在构造函数中。

于 2013-05-16T08:22:52.270 回答
0

尝试以下操作:

public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {
Toast.makeText(getApplicationContext(), lv.getAdapter().getItem(pos).toString(),  2000).show();

快乐编码

于 2013-05-16T08:25:05.473 回答
0

更换你的

(TextView) view).getText().toString()

经过

spinnerFolder.getSelectedItem().toString()
于 2013-05-16T08:26:57.827 回答
0

Toast 持续时间不是你放在那里的值,以秒或毫秒为单位,它是你必须设置的标志,你必须放在那里LENGTH_SHORTLENGTH_LONG。这是标志,如果您需要比 length_long 更长的持续时间,您将不得不使用通知

于 2013-05-16T08:47:50.667 回答