2016-11-12 2 views
0

Etwas seltsames, das hier passiert, unter item.settext(name); Ich bekomme Cannot resolve method 'settext(java.lang.String)'.Die Methode 'settext (java.lang.String)' kann nicht aufgelöst werden.

Ich erstelle eine App, bei der die Listenansicht dynamisch von den Datenbankergebnissen generiert wird.

Layout-

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="horizontal" > 
    <ListView 
     android:id="@+id/lvItems" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Study cursors" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout> 

Methode

public void bindView(View view, Context context, Cursor cursor) { 
    ListView item = (ListView) view.findViewById(R.id.lvItems); 
    String name = cursor.getString(cursor.getColumnIndexOrThrow("name")); 
    item.settext(name); 
} 

public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.dashboard_completed, container, false); 
     myDB = null; 
     try { 
      File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()); 
      File file = new File(dir, "database.db"); 
      myDB = SQLiteDatabase.openDatabase(file.toString(), null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY); 

      String q = "SELECT * FROM companies ORDER BY name ASC"; 
      Cursor mCursor = myDB.rawQuery(q, null); 

      // Find ListView to populate 
      ListView lvItems = (ListView) view.findViewById(R.id.lvItems); 

      // Setup cursor adapter using cursor from last step 
      dashboardCursorAdaptor todoAdapter = new dashboardCursorAdaptor(getActivity().getApplicationContext(), mCursor); 

      // Attach cursor adapter to the ListView 
      lvItems.setAdapter(todoAdapter); 

      myDB.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     return view; 
    } 

Antwort

1

ich nicht sehen kann Dein voller Code. Ich weiß nicht, wo Sie Ihre ListView definiert haben. Viele Entwickler machen Fehler in diesem Schritt. Denken Sie daran, dass ListView und TextView unterschiedliche Layout haben werden.

Wenn ich Ihnen eine Lösung geben muss, dann würde ich empfehlen, zu überprüfen, ob Sie eine ListView und ein anderes Layout item_WHATEVER haben, wo Sie die TextView definieren.

Auf bindView Methodenreferenz die TextView.

+0

Danke, Sie haben Recht. Ich musste zwei Layouts erstellen, eins für ListView und anderes für TextView. Es funktioniert großartig. –

+1

Froh, Ihnen zu helfen. –

1

Listview hat keine setText Methode - Ich denke, was Sie wollen, gibt es eine Textview ist ..

+0

Ja, Sie haben Recht. –

Verwandte Themen