アプリを開発していますが、タイトルにあるように、リストビューの項目を文字列配列に入れる方法が示されています。文字列配列をリストビューにではなく、リストビューを文字列配列に入れる方法です。
私はこれを探していましたが、私が見つけたのは文字列配列項目をリストビューに入れることだけです。
よろしくお願いします。
このスレッドを明確にするために、質問はリストビュー項目を文字列配列に入れる方法です。
ありがとう。:D
コード
public class DailyPlanTab extends Activity implements OnItemClickListener {
ListView dailyPlanList;
ArrayList<DailyManager> taskList = new ArrayList<DailyManager>();
DatabaseDailyPlan db;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dailyplan_layout);
dailyPlanList = (ListView) findViewById(R.id.lvDailyPlanList);
dailyPlanList.setOnItemClickListener(this);
ImageView add = (ImageView) findViewById(R.id.ivDailyPlanAdd);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent newDailyIntent = new Intent(getApplicationContext(),
NewDailyPlan.class);
startActivity(newDailyIntent);
}
});
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
taskList.clear();
db = new DatabaseDailyPlan(getApplicationContext());
db.getWritableDatabase();
ArrayList<DailyManager> tempList = db.getTask();
for (int i = 0; i < tempList.size(); i++) {
String getTask = tempList.get(i).getDaily_name();
String getDate = tempList.get(i).getDaily_date();
int getId = tempList.get(i).getDaily_id();
DailyManager dm = new DailyManager();
dm.setDaily_name(getTask);
dm.setDaily_date(getDate);
dm.setDaily_id(getId);
taskList.add(dm);
}
dailyPlanList.setAdapter(new ListAdapter(this));
// db.close();
}
public class ListAdapter extends BaseAdapter {
LayoutInflater inflater;
ViewHolder viewHolder;
public ListAdapter(Context c) {
// TODO Auto-generated constructor stub
inflater = LayoutInflater.from(c);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return taskList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.row_checklist_item,
null);
viewHolder = new ViewHolder();
viewHolder.taskTitle = (TextView) convertView
.findViewById(R.id.tvCheckListItem);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.taskTitle.setText(""
+ taskList.get(position).getDaily_name());
return convertView;
}
}
public class ViewHolder {
TextView taskTitle, taskDate;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
// TODO Auto-generated method stub
int taskId = taskList.get(position).getDaily_id();
String taskName = taskList.get(position).getDaily_name();
String taskDate = taskList.get(position).getDaily_date();
Intent newPlan = new Intent(getApplicationContext(), DailyPlan.class);
newPlan.putExtra("task_id", taskId);
newPlan.putExtra("task_name", taskName);
startActivity(newPlan);
}
次はリストビュー内のアイテムの情報です
public class DailyPlan extends Activity implements OnItemClickListener {
final ArrayList<DailyManager> savedItems = new ArrayList<DailyManager>();
ListView checkList;
Boolean nextItem = false;
TempManager tm;
DatabaseTemp dbTemp;
Intent i;
int taskId = -1;
String taskName = " ", taskDate = null;
DatabaseDailyPlan db;
DailyManager dm;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.saved_dailyplan);
checkList = (ListView) findViewById(R.id.lvCheckList);
// checkList.setOnItemClickListener(this);
try {
i = getIntent();
taskId = i.getExtras().getInt("task_id");
taskName = i.getExtras().getString("task_name");
Toast.makeText(getApplicationContext(), "From new id is" + taskId,
5000).show();
} catch (Exception e) {
}
Button addList = (Button) findViewById(R.id.bAddList);
addList.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// openDialog("", false, -1);
}
});
if (nextItem) {
// openDialog("", false, -1);
}
}
public void refresh() {
DailyPlan.this.onResume();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
savedItems.clear();
dbTemp = new DatabaseTemp(getApplicationContext());
dbTemp.getWritableDatabase();
db = new DatabaseDailyPlan(getApplicationContext());
db.getWritableDatabase();
if (taskId != -1) { // / For Load
ArrayList<DailyManager> savedList = db.getList(taskId);
for (int i = 0; i < savedList.size(); i++) {
String savedListItems = savedList.get(i).getDaily_list();
String savedListTitle = savedList.get(i).getDaily_name();
String savedListDate = savedList.get(i).getDaily_date();
int savedListId = savedList.get(i).getDaily_id();
DailyManager dm = new DailyManager();
dm.setDaily_list(savedListItems);
dm.setDaily_name(savedListTitle);
dm.setDaily_date(savedListDate);
dm.setDaily_id(savedListId);
savedItems.add(dm);
}
} else { // / For New
}
checkList.setAdapter(new ListAdapter(this));
}
public class ListAdapter extends BaseAdapter {
LayoutInflater inflater;
ViewHolder viewHolder;
public ListAdapter(Context c) {
// TODO Auto-generated constructor stub
inflater = LayoutInflater.from(c);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return savedItems.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.row_checklist_item,
null);
viewHolder = new ViewHolder();
viewHolder.checkListItem = (TextView) convertView
.findViewById(R.id.tvCheckListItem);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.checkListItem.setText(savedItems.get(position)
.getDaily_list() + position);
final int temp = position;
return convertView;
}
}
private class ViewHolder {
TextView checkListItem;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int item, long arg3) {
// TODO Auto-generated method stub
// openDialog(savedItems.get(item).getDaily_name(), true,
// savedItems.get(item).getDaily_id());
}
}