2016-09-14 5 views
1

Ich verwende einen Adapter, um das Elementlayout festzulegen und eine ListView aus einer JSON-Zeichenfolge aufzufüllen. Manchmal ist dieser JSON leer und es gibt keine Zeilen in ListView und es ist voll leer.Listenansicht ändern, wenn leer

In diesem Fall möchte ich die Ansicht ändern und ein anderes Layout übergeben, das "Hier sind keine Zeilen" angezeigt wird.

Also das ist mein Code:

MainActivity.java

public class MainActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ListView listView = (ListView) findViewById(R.id.listView); 
     List list = new LinkedList(); 

     [...fill list...] 

     ListAdapter adapter = new ListAdapter(this, R.layout.list_row_layout, list, R.id.edCod, R.id.edDes); 
     listView.setAdapter(adapter); 
    } 
} 

ListAdapter.java

public class ListAdapter extends ArrayAdapter<Adapter> { 
    private LayoutInflater layoutInflater; 
    private int layout; 
    private int textCod; 
    private int textDes; 

    public FruttaAdapter(Context context, int layout, List<Adapter> objects, int textCod, int textDes) { 
     super(context, layout, objects); 

     this.layout = layout; 
     this.textCod = textCod; 
     this.textDes = textDes; 
     layoutInflater = LayoutInflater.from(context); 
    } 
+0

Zeigen Sie Ihr Layout – SripadRaj

+0

Wir brauchen einen Mod zu markieren das ist ein exaktes Duplikat –

+0

Auch bei @Simone ist es nicht sinnvoll, "Android Studio:" zu Ihren Fragen oder als Tag hinzuzufügen. Man könnte genau diese Frage ohne Android Studio haben. Das Tag ist speziell für Fragen * über * die IDE selbst, nicht die Prozesse des Schreibens des Codes –

Antwort

3

Sie listView.setEmptyView(yourEmptyView) verwenden können.

+5

Bitte stimmen Sie zu Schließen Sie als Duplikat –

-1

Eigentlich könnten Sie verwenden eine ListActivity oder ListFragment und verwenden seine EmptyView (jede Ansicht, die die ID android.R.id.empty hat)

+0

Eigentlich 'android.R.id.empty', mit' @android: id/empty', aber das ist in dem Duplikat Post –

+0

yep diskutiert, abgestimmt nahe. Aber korrigierte es trotzdem. –

Verwandte Themen