2017-05-09 8 views
0

okay, so habe ich dieses Problem, wo ich ein Popup, das eine Listview enthält und ich versuche, die ausgewählte Zeichenfolge von Daten in textview in der Haupttätigkeit außerhalb des Popup, die alle normal funktionierten, wenn die Listenansicht in der Haupttätigkeit ist, aber wenn ich es mich in einem Popup setzen begann bekommenLinearLayout Widget kann nicht in Textview Widget, Listview in Popupwindow

android.widget.LinearLayout cannot be cast to android.widget.TextView 

hier ist der Code für aus dem Popup, wo ich versuche, die zum abrufen string:

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); 


     } 

Hier ist das Popup-XML:

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent"> 

<ListView 
    android:id="@+id/view_List" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/words_bg" 
    android:paddingBottom="3dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" 
    android:paddingTop="3dp" 
    /> 
</LinearLayout> 

und hier ist die XML für die Textview aus der Haupttätigkeit (es ist die view_btn eins):

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" 
     android:weightSum="1"> 

     <Button 
      android:id="@+id/view_btn" 
      android:layout_width="206dp" 
      android:layout_height="wrap_content" 
      android:text="@string/view_all" 
      android:textColor="#FFF" 
      android:theme="@style/MyButton" /> 

     <Button 
      android:id="@+id/sug_btn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/sug_btn" 
      android:textColor="#FFF" 
      android:theme="@style/MyButton" /> 

    </LinearLayout> 

EDIT: Hier ist mein OnCreate für die popupwindow

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); 
+0

können Sie den Code-Snippet hinzufügen, wo Sie setzen Adapter für Listview – Sanjeet

+0

getan lösen! schau es dir an @Sanjeet – lua

+0

du musst 'TextView wordView = (TextView) anzeigen;' in 'TextView wordView = (TextView) view.findViewById (R.id.yourTextViewId);' @ lua – Sanjeet

Antwort

0

Sie versuchen, die Ansicht in der Zeile

TextView wordView = (TextView) view; 
auf TextView zu übertragen

entfernen Sie diese Zeile und fügen Sie eine Textansicht in das Layout ein und rufen Sie sie per Code auf. . für die Linie

String wordChosen = (String) wordView.getText(); 

korrigieren zu String wordChosen = wordView.getText() toString();

hoffen, dass dies Ihr Problem

+0

Hallo, yeah, was meinst du mit einem Textview in das Layout? – lua

+0

in Ihrer XML-Datei ich meine, setzen Sie eine Textansicht –

+0

in der Popup-XML? wozu? was tut es? – lua

Verwandte Themen