【发布时间】:2014-06-30 16:27:07
【问题描述】:
作为 android 编程的初学者,我正在开发一个应用程序。 我必须为每行做一个图像、2 个文本视图和一个复选框的列表视图。 我必须在操作栏中实现一个继续按钮,因此当单击此按钮时,列表中所有选中的复选框都会出现在另一个列表视图的警报对话框中。 我面临的问题是我不知道如何知道选中了哪个复选框,因此我可以实现警报对话框。 谁能帮帮我?
这是我的主要活动代码:
package com.example.view;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
public static final String TAG = MainActivity.class.getSimpleName();
ListView listView;
ArrayList<ListViewItem> items;
CustomListViewAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
items = new ArrayList<MainActivity.ListViewItem>();
items.add(new ListViewItem(R.drawable.ic_launcher, "Item1", "Item1 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item2", "Item2 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item3", "Item3 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item4", "Item4 Description"));
adapter = new CustomListViewAdapter(this, items);
listView.setAdapter(adapter);
}
class ListViewItem {
private int thumbnailResource;
private String title;
private String subTitle;
public ListViewItem()
{
}
public ListViewItem(int thumbnailResource, String title, String subTitle)
{
this.thumbnailResource = thumbnailResource;
this.title = title;
this.subTitle = subTitle;
}
public int getThumbnailResource()
{
return thumbnailResource;
}
public void setThumbnailResource(int thumbnailResource)
{
this.thumbnailResource = thumbnailResource;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getSubTitle()
{
return subTitle;
}
public void setSubTitle(String subTitle)
{
this.subTitle = subTitle;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions_view, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.action_continue:
doContinue();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void doContinue()
{
// open the alertdialog box depending on the items selected
}
}
这是我的适配器代码:
package com.example.view;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.view.MainActivity.ListViewItem;
public class CustomListViewAdapter extends ArrayAdapter<ListViewItem>
{
LayoutInflater inflater;
ArrayList<ListViewItem> items;
public CheckBox checkBox;
public static final String TAG = MainActivity.class.getSimpleName();
public CustomListViewAdapter(Activity context, ArrayList<ListViewItem> items)
{
super(context, R.layout.list_item_row, items);
this.items = items;
this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(final int position, View convertView, ViewGroup parent)
{
//System.out.println(position);
ListViewItem item = items.get(position);
View rowview = inflater.inflate(R.layout.list_item_row, parent, false);
ImageView imgView = (ImageView) rowview.findViewById(R.id.imgThumbnail);
TextView txtTitle = (TextView) rowview.findViewById(R.id.txtTitle);
TextView txtSubTitle = (TextView) rowview.findViewById(R.id.txtSubTitle);
CheckBox checkBox = (CheckBox) rowview.findViewById(R.id.checkbox);
imgView.setImageResource(item.getThumbnailResource());
txtTitle.setText(item.getTitle());
txtSubTitle.setText(item.getSubTitle());
return rowview;
}
}
那么我在哪里以及如何编写代码以了解通过复选框选择了哪些项目?
【问题讨论】:
标签: android