我有一个包含listview的Mainactivity,还有另一个名为" WhiteList"这也包含listview,我想将listview项目从MainActivity添加到另一个活动的Listview项目。请帮我做那个
适配器代码: -
private LayoutInflater layoutInflater;
private List<AppList> listStorage;
private Context mContext;
int newarr_pos=0;
public AppAdapter(Context context, List<AppList> customizedListView) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
listStorage = customizedListView;
this.mContext = context;
}
@Override
public int getCount() {
return listStorage.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder listViewHolder;
if (convertView == null) {
listViewHolder = new ViewHolder();
convertView = layoutInflater.inflate(R.layout.installed_app_list, parent, false);
listViewHolder.textInListView = (TextView) convertView.findViewById(R.id.list_app_name);
listViewHolder.imageInListView = (ImageView) convertView.findViewById(R.id.app_icon);
listViewHolder.switchCompat = (SwitchCompat) convertView.findViewById(R.id.toggleButton);
convertView.setTag(listViewHolder);
} else {
listViewHolder = (ViewHolder) convertView.getTag();
}
listViewHolder.textInListView.setText(listStorage.get(position).getName());
listViewHolder.imageInListView.setImageDrawable(listStorage.get(position).getIcon());
listViewHolder.switchCompat.setTag(position);
listViewHolder.switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
new AlertDialog.Builder(mContext,R.style.AppCompatAlertDialogStyle).setTitle("Warning").setMessage("You want to whiteList this application?").setPositiveButton("YES", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//here i am adding items to another arraylist
List<WhiteListModel> res = new ArrayList<WhiteListModel>();
String name = listStorage.get(position).getName();
Drawable icon = listStorage.get(position).getIcon();
String packageName = listStorage.get(position).getPackName();
res.add(new WhiteListModel(name,icon,packageName));
listStorage.remove(position);
notifyDataSetChanged();
listViewHolder.switchCompat.setChecked(false);
}
}).setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listViewHolder.switchCompat.setChecked(false);
}
}).show();
}
}
});
return convertView;
}
static class ViewHolder {
SwitchCompat switchCompat;
TextView textInListView;
ImageView imageInListView;
}
}
答案 0 :(得分:0)
假设您在两个活动中都需要相同的列表,在启动另一个活动时,您可以将列表传递给该活动,如下所示:
intent.putExtra("LIST", myList);
然后检索列表:
ArrayList<TypeOfList> myList = (ArrayList<TypeOfList>) getIntent().getSerializableExtra("LIST");
最后将列表设置为listview:
yourAdapter.setList(myList);
listView.setAdapter(yourAdapter);