经过几个小时的搜索,我找不到有类似问题的人,请你帮我解决这个问题。
我有一个带有两个listview的活动:listview1放在listview2上面。
这是我的活动:
private ListView mListApplication_kid, mListApplication_non_kid;
private List<ResolveInfo> mListAplicationInfo;
private List<MyApplication> mListApplicationList = new ArrayList<MyApplication>();
private List<MyApplication> mListApplicationList_non_kid = new ArrayList<MyApplication>();
private KidModeAdapter1 mAplicationAdapter;
private KidModeAdapter2 mAplicationAdapter_non_default;
private Context mContext;
private String TAG = "KidModeActivity";
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.activity_kid_mode);
mContext=this;
list_kid_mode = new ArrayList<String>(Arrays.asList(PHONE, CONTACTS, MESSAGE, CAMERA, CHROME));
mListApplication_kid = (ListView) findViewById(R.id.listview_kidmode_default);
mListApplication_non_kid = (ListView) findViewById(R.id.listview_kidmode_non_default);
loadAplication();
}
private void loadAplication() {
mAplicationAdapter = new KidModeAdapter1(mContext, R.layout.aplication_item, mListApplicationList);
mAplicationAdapter_non_default = new KidModeAdapter2(mContext, R.layout.aplication_item, mListApplicationList_non_kid);
mListApplicationList.removeAll(mListApplicationList);
mListApplicationList_non_kid.removeAll(mListApplicationList_non_kid);
mAplicationAdapter.notifyDataSetChanged();
mAplicationAdapter_non_default.notifyDataSetChanged();
new loadKidMode().execute(); // load all the available MyApplication into the mListApplicationList, and mListApplicationList_non_kid
mListApplication_kid.setAdapter(mAplicationAdapter);
mListApplication_non_kid.setAdapter(mAplicationAdapter_non_default);
}
这是我的xml文件:
<?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="vertical" >
<TextView
android:id="@+id/txtKidMode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="@string/default_mode"
android:textColor="@color/title"
android:textSize="@dimen/title_textsize" />
<ListView
android:id="@+id/listview_kidmode_default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/counter_text_color"
android:clickable="true">
</ListView>
<ListView
android:id="@+id/listview_kidmode_non_default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@color/list_background"
android:clickable="true">
</ListView>
</LinearLayout>
我知道这是关于此活动并设置KidModeAdapter1和KidModeAdapter2文件,但只是不知道如何。 请你帮帮我!!!
答案 0 :(得分:1)
您应该将OnItemClickListener
设置为您要点击的ListView
:
mListApplication_kid.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
mListApplicationList_non_kid.add(parent.getItemAtPosition(position));
mAplicationAdapter_non_default.notifyDataSetChanged();
mListApplicationList.remove(parent.getItemAtPosition(position));
mApplicationAdapter.notifyDataSetChanged();
}
});
这将从一个ListView
中删除该项目,并在点击该项目时在另一个ListView
中插入相同的项目。
修改强>
如果您在列表项中有其他请求重点的元素,请向其添加android:focusable="false"