我必须在一个Activity中使用大约3-4个listView。我知道如何使用一个listView,但是当我需要使用超过1时,它对我来说真的很重要。在我问你之前,我已经搜索了很多内容,但没有任何内容..如果你有适合我的链接 - 欢迎你。 我从Parse.com获取数据(我检查它并且连接正确)然后我需要在每个listView中调度它。 1列= 1列表视图,我有3-4列。
这是我的dish_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/soup"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/garnish"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/starter"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/salad"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/drink"
/>
</LinearLayout>
它的ListActivity.class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dish_view);
soupView = (ListView) findViewById(R.id.list1);
garnishView = (ListView) findViewById(R.id.garnish);
starterView = (ListView) findViewById(R.id.starter);
saladView = (ListView) findViewById(R.id.salad);
drinkView = (ListView) findViewById(R.id.drink);
final List<String> soupList = new ArrayList<>();
List<String> garnishList = new ArrayList<>();
List<String> starterList = new ArrayList<>();
List<String> saladList = new ArrayList<>();
List<String> drinkList = new ArrayList<>();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Dishes");
query.selectKeys(Arrays.asList("soup"));
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
for (ParseObject object : list) {
soupList.add(object.getString("soup"));
System.out.println(soupList);
}
}
}
});
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, soupList);
soupView.setAdapter(adapter);
}
还有dish.xml,如何显示
<!-- language: xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dish"
/>
</LinearLayout>
答案 0 :(得分:0)
您可以尝试为每个列表视图分配权重。例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/soup"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/garnish"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/starter"
/>
<ListView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/salad"
/>
<ListView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/drink"
/>
您应该在收到数据时填充列表并设置适配器。试试这个:
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, ParseException e) {
if (e == null) {
String[] items = new String[list.size()];
int i = 0;
for (ParseObject object : list) {
items[i] = object.getString("soup");
i++;
System.out.println(soupList);
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(ListActivity.this, android.R.layout.simple_list_item_1, items);
soupView.setAdapter(adapter);
}
}
});