Android LinearLayout小部件无法强制转换为popupwindow中的Textview小部件、Listview
好的,我遇到了这个问题,我有一个包含Listview的弹出窗口,我试图将选定的数据字符串放入弹出窗口之外的主活动中的textview,当Listview位于主活动中时,所有这些都正常工作,但当我将其放入弹出窗口时,我开始得到Android LinearLayout小部件无法强制转换为popupwindow中的Textview小部件、Listview,android,android-layout,listview,textview,popup,Android,Android Layout,Listview,Textview,Popup,好的,我遇到了这个问题,我有一个包含Listview的弹出窗口,我试图将选定的数据字符串放入弹出窗口之外的主活动中的textview,当Listview位于主活动中时,所有这些都正常工作,但当我将其放入弹出窗口时,我开始得到 android.widget.LinearLayout cannot be cast to android.widget.TextView 以下是我尝试检索字符串的弹出窗口中的代码: word_lst.setOnItemClickListener(new AdapterV
android.widget.LinearLayout cannot be cast to android.widget.TextView
以下是我尝试检索字符串的弹出窗口中的代码:
word_lst.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//click listener for items within list
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//cast the view
TextView wordView = (TextView) view;
//retrieve the chosen word
String wordChosen = (String) wordView.getText();
Log.v("WORD: ", "chosen: " + wordChosen);
//output Toast message
Toast.makeText(viewpop.this, "You said: " + wordChosen, Toast.LENGTH_SHORT).show();
repeatTTS.speak("You said: " + wordChosen, TextToSpeech.QUEUE_FLUSH, null);
finish();
setContentView(R.layout.activity_main);
sug_wrd = (TextView) findViewById(R.id.words_string);
sug_wrd.setText(wordChosen);
}
您正在尝试将视图强制转换为行中的文本视图
TextView wordView = (TextView) view;
因此,删除这一行,在布局中放置一个textview,并通过代码调用它。
排队
String wordChosen = (String) wordView.getText();
更正为
字符串WordSelected=wordView.getText().toString()
希望这能解决您的问题您能在为ListViewdone设置适配器的地方添加代码段吗!查看@sanjeetytyou必须更改
TextView wordView=(TextView)视图
toTextView wordView=(TextView)view.findviewbyd(R.id.yourTextViewId)
@luawait等等,我正在从listview获取字符串,那么(yourtextviewId)应该如何工作呢?比如,我们在这里谈论的是什么文本视图ID?我想我在这里遗漏了一些东西@Sanjeethere视图将是根布局(而不是TextView),它被用来在ListView中膨胀。因此,如果尝试将其强制转换为文本视图,它将抛出异常@luahi,是的,您在布局中放置文本视图是什么意思?在您的xml文件中,我的意思是在弹出的xml中放置文本视图?为何它做什么?我问是因为我不明白,我正在从弹出窗口的Listview中检索一个字符串,并将其放在主活动的textview中
public void onCreate(Bundle savedInstanceState) {
//call superclass
super.onCreate(savedInstanceState);
//set contect view
setContentView(R.layout.popupview);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
getWindow().setLayout((int) (width * .9), (int) (height * .7));
//---
word_lst = (ListView) findViewById(R.id.view_List);
DataBaseHelper db = new DataBaseHelper(getApplicationContext());
SQLiteDatabase sqdb = db.getWritableDatabase();
Cursor cur1 = sqdb.rawQuery("SELECT * FROM wordsdata ORDER BY Enno DESC", null);
TodoCursorAdapter todoAdapter = new TodoCursorAdapter(getApplicationContext(), cur1);
word_lst.setAdapter(todoAdapter);
LayoutInflater inflater = getLayoutInflater();
final ViewGroup header = (ViewGroup) inflater.inflate(R.layout.header, word_lst, false);
word_lst.addHeaderView(header, null, false);
TextView wordView = (TextView) view;
String wordChosen = (String) wordView.getText();