在我的应用程序中,我需要创建两个列表,每个列表都有不同的数据。我设计的 UI 就像在 LinearLayout 中的 TableLayout 中一个接一个地添加两个列表视图。我已将数据存储在两个字符串数组中,并使用 arrayadapter 填充到列表视图中。我的列表视图包含一个文本视图和一个图像。问题是
1。代码中没有显示错误,但列表以奇怪的方式填充。显示第 1 个列表项,第 2、3、4 个列表项未显示,第 5 个显示第 6 个未显示,从第 7 个开始很好。当我向上滚动时,列表显示所有列表项。2.每个列表都应该有自己的滚动控件。就像我滚动列表“A”一样,它应该只滚动而不是列表“B”,反之亦然。我在这里附上了代码。提前致谢。
主屏幕.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_LinearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TableLayout
android:id="@+id/request_Table"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/black"
android:orientation="vertical"
android:padding="20dp" >
<TableRow
android:id="@+id/request_Row1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
android:orientation="vertical" >
<TextView
android:id="@+id/request_TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="REQUESTS"
android:textColor="@color/white"
android:textStyle="bold" />
<ImageView
android:id="@+id/widget163"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</TableRow>
<TableRow
android:id="@+id/request_Row2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/gray"
android:orientation="horizontal" >
<ListView
android:id="@+id/request_ListView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:scrollbarAlwaysDrawVerticalTrack="true" />
</TableRow>
</TableLayout>
<TableLayout
android:id="@+id/offered_Table"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/black"
android:orientation="vertical"
android:padding="20dp" >
<TableRow
android:id="@+id/offered_Row1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
android:orientation="horizontal" >
<TextView
android:id="@+id/offered_TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="OFFERED"
android:textColor="@color/white"
android:textStyle="bold" />
</TableRow>
<TableRow
android:id="@+id/offered_Row2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ListView
android:id="@+id/offered_ListView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/gray"
android:padding="5dp"
android:scrollbars="vertical"
android:smoothScrollbar="true" />
</TableRow>
</TableLayout>
</LinearLayout>
主屏.java
public class MainMenu extends Activity {
RequestAdapter mRequestAdapter;
ListView mListView_req ;
public class RequestData {
int icon;
String list_text;
public RequestData( String mText) {
super();
//this.icon=image;
this.list_text=mText;
}
}
private RequestData[] getListItems(){
Resources mRes = getResources();
String[] sListItems= mRes.getStringArray(R.array.request_list);
int listsize = sListItems.length;
RequestData[] obj = new RequestData[listsize];
int size = obj.length;
for(int i=0; i<size; i++){
obj[i] = new RequestData(sListItems[i]);
}
return obj;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainmenu_screen);
mListView_req= (ListView)findViewById(R.id.request_ListView) ;
mRequestAdapter = new RequestAdapter(this,R.layout.listitem, getListItems());
mListView_req.setAdapter(mRequestAdapter);
}
class RequestAdapter extends ArrayAdapter{
private RequestData rList[]= null;
Context context;
public RequestAdapter(Context context, int textViewResourceId,
RequestData[] data) {
super(context, textViewResourceId, data);
// TODO Auto-generated constructor stub
this.rList= data;
}
@Override
public RequestData getItem(int position){
return rList[position];
}
@Override
public View getView(int pos, View convertView, ViewGroup parent) {
View row= convertView;
if (row== null){
row = getLayoyutinflater().inflate(R.layout.listitem,null);
}
else {
RequestData items = getItem(pos);
TextView text= (TextView) row.findViewById(R.id.List_Text);
if(text!= null){
text.setText(items.list_text);
}
}
return row;
}
listitem.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="150dp">
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:id="@+id/text"/>
<ImageView>
android:layout_width="40dp"
android:layout_height="wrap_content"
android:src="@drawable/arrow"
android:layout_marginRight="10dp"/>
</LinearLayout>