- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个应用程序
在我的应用程序中,我创建了自定义 ListView
,在 ListView 中,我添加了一个 CheckBox
、ImageView
和 2 TextView
。
现在我想在下一个选中的 Activity 中传递数据。
我该怎么做?
ChannelListView.java
public class ChannelListView extends Activity implements OnItemClickListener {
CheckBox checkMarks;
ListView allChannels;
ArrayAdapter<DisplayChannelListData> adapter;
Button send, back;
DatabaseHelper dbHelper;
List<DisplayChannelListData> channelListData;
ChannelListView channelListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_view);
channelListView = this;
dbHelper = new DatabaseHelper(getApplicationContext());
allChannels = (ListView) findViewById(R.id.listviewAllChannel);
send = (Button) findViewById(R.id.btnListSend);
back = (Button) findViewById(R.id.btnListBack);
adapter = new ListViewAdapter(this, getListViewModel());
allChannels.setAdapter(adapter);
allChannels.setOnItemClickListener(this);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ChannelListView.this, ChannelList.class);
startActivity(intent);
}
});
}
private List<DisplayChannelListData> getListViewModel() {
channelListData = dbHelper.displayChannelsList(channelListView);
return channelListData;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
checkMarks = (CheckBox) view.findViewById(R.id.chkAllCheckMark);
if (!checkMarks.isChecked()) {
checkMarks.setChecked(true);
} else {
checkMarks.setChecked(false);
}
}
}
ListViewAdapter.java
public class ListViewAdapter extends ArrayAdapter<DisplayChannelListData> {
private final List<DisplayChannelListData> list;
private final Activity context;
boolean checkAll_flag = false;
boolean checkItem_flag = false;
public ListViewAdapter(Activity context, List<DisplayChannelListData> list) {
super(context, R.layout.list_view, list);
this.context = context;
this.list = list;
}
static class ViewHolder {
protected TextView channelTitle, channelSubTitle;
protected ImageView channelImage;
protected CheckBox greenCheckMark;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater inflater = context.getLayoutInflater();
convertView = inflater.inflate(R.layout.all_channel_listview_item, null);
viewHolder = new ViewHolder();
viewHolder.channelTitle = (TextView) convertView.findViewById(R.id.txtAllChannelName);
viewHolder.channelSubTitle = (TextView) convertView
.findViewById(R.id.txtAllChannelDesc);
viewHolder.channelImage = (ImageView) convertView.findViewById(R.id.imgAllChannelIcon);
viewHolder.greenCheckMark = (CheckBox) convertView.findViewById(R.id.chkAllCheckMark);
viewHolder.greenCheckMark
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
list.get(getPosition).setSelected(buttonView.isChecked());
}
});
convertView.setTag(viewHolder);
convertView.setTag(R.id.chkAllCheckMark, viewHolder.greenCheckMark);
convertView.setTag(R.id.imgAllChannelIcon, viewHolder.channelImage);
convertView.setTag(R.id.txtAllChannelName, viewHolder.channelTitle);
convertView.setTag(R.id.txtAllChannelDesc, viewHolder.channelSubTitle);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.greenCheckMark.setTag(position);
viewHolder.greenCheckMark.setChecked(list.get(position).isSelected());
viewHolder.channelImage.setImageResource(list.get(position).getDrawable_path());
viewHolder.channelTitle.setText(list.get(position).getChannel_name());
viewHolder.channelSubTitle.setText(list.get(position).getChannel_desc());
return convertView;
}
}
DisplayChannelListData.java
public class DisplayChannelListData {
private boolean selected;
private int drawable_path;
private String channel_name;
private String channel_desc;
public DisplayChannelListData(int path,String name,String desc){
this.drawable_path = path;
this.channel_name = name;
this.channel_desc = desc;
}
public int getDrawable_path() {
return drawable_path;
}
public void setDrawable_path(int drawable_path) {
this.drawable_path = drawable_path;
}
public String getChannel_name() {
return channel_name;
}
public void setChannel_name(String channel_name) {
this.channel_name = channel_name;
}
public String getChannel_desc() {
return channel_desc;
}
public void setChannel_desc(String channel_desc) {
this.channel_desc = channel_desc;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
}
最佳答案
检查的时候维护一个ArrayList,比如:
ArrayList<DisplayChannelListData> checkedChannelList=new ArrayList<DisplayChannelListData>();
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
checkMarks = (CheckBox) view.findViewById(R.id.chkAllCheckMark);
if (!checkMarks.isChecked()) {
checkMarks.setChecked(true);
checkedChannelList.add(channelListData.get(position));
} else {
checkMarks.setChecked(false);
checkedChannelList.remove(channelListData.get(position));
}
}
然后,在 Button 的 onClickListener 中,发送已检查的 channel 列表:
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ChannelListView.this, ChannelList.class);
intent.putParcelableArrayListExtra("CHANNELSLIST", checkedChannelList);
startActivity(intent);
}
});
关于android - 获取从 CustomListView 检查的项目的名称并在下一个 Intent 中传递该项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28717467/
What my app should do 我想从 SQLite 数据库的两个不同表(TABLE_GROUPS 和 TABLE_PASSWORDS)填充一个 ListView。 首先,我使用以下自定义
我正在开发关于 CustomListView 的 Android 应用程序,首先我从 Web 服务解析数据然后我将这些数据添加到 ListView 但是当我下拉到 scrollView 时我得到了这个
这是我正在解析数据的 Java 代码- pDialog = new ProgressDialog(getActivity()); // Showing progress dialog
我正在尝试实现自定义 ListView 。它显示正常,当我慢慢滚动它时它工作正常。但是,当我开始更快地滚动时,应用程序崩溃了。下面是我的 ListView 适配器代码。 import java.uti
我正在尝试开发一个Android应用程序。我对数组使用了自定义 ListView 。 我有 4 个这样的按钮: 但我想要:当黄色按钮单击 ListView 的样式时: 当按钮2点击listview的样
我正在做一个项目,其中有一个自定义 ListView ,它显示不同的字段并显示任务状态。数据作为类的对象接收 我用来调用基本适配器的类如下: package com.igloo.fragments;
有人帮我解决这个问题。因为这个问题我卡了3天-_-! 我可以使用 volley 库制作带有图像和文本的 ListView ,它在模拟器(我使用 genymotion 模拟器)中工作,图像和文本显示。但
我创建了一个自定义 ListView,并填充了一个 ArrayList 对象。它还有一个复选框,允许用户选择某些项目,然后单击按钮对它们执行某些操作。 我的问题是:如何迭代ListView代码端?我查
我创建了一个应用程序 在我的应用程序中,我创建了自定义 ListView,在 ListView 中,我添加了一个 CheckBox、ImageView 和 2 TextView 。 现在我想在下一个选
我正在开发一个音乐应用程序,我的应用程序需要很多时间来生成音乐文件列表(因为它必须生成位图)所以我在网上搜索并了解了异步任务,我能够在我遇到的另一个问题中成功实现了它(所以我想我理解它背后的逻辑)但在
我正在使用 baseadapter 创建自定义 ListView 。我的 ListView 包含 TextView 、两个按钮和一个编辑文本。这两个按钮用于加法和减法。当我单击加号按钮时,我希望 ed
我正在尝试创建一个 ListActivity,其中连续包含一个 CheckBox、TextView 和 EditText自定义列表。 我需要在我的 EditText 中获取用户的输入,并在选择该行的
我有包含内容和 TTS 选项的自定义 ListView ,在使用 TTS 时抛出空指针异常,Listview 也没有显示我的应用程序已停止。Logcat 中显示错误。 应用适配器.java publi
我的应用程序运行良好。但出于某些原因,我不得不在我的项目中实现 SQLiteOpenHelper。我对 SQLiteOpenHelper 一无所知。我成功地在数据库的自定义 ListView 中显示了
我有一个问题,我想在自定义 ListView 中加载图像作为背景。我已经尝试了所有我能想到的方法,但是作为它在不同 xml 文件上的 ImageView,它无法工作。当我将 ImageView 移动到
我正在尝试在 SherlockFragment 中实现自定义 ExpandableListView。我跟着这个sample扩展 BaseExpandableListAdapter 并创建我的自定义适配
我是一名优秀的程序员,十分优秀!