0

アプリを開発していますが、タイトルにあるように、リストビューの項目を文字列配列に入れる方法が示されています。文字列配列をリストビューにではなく、リストビューを文字列配列に入れる方法です。

私はこれを探していましたが、私が見つけたのは文字列配列項目をリストビューに入れることだけです。

よろしくお願いします。

このスレッドを明確にするために、質問はリストビュー項目を文字列配列に入れる方法です。

ありがとう。: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());
}

}

4

2 に答える 2

0

まず、列の長さで配列を作成し、for ループを作成して、以下のように配列内のすべての値を割り当てる必要があります。

string[] selected_item = new string[listView.SelectedItems.Count];
    for (int i = 0; i < selected_item.Length; i++)
    {
        selected_item[i] = listView.SelectedItems[i].Text; 
    }
于 2015-05-18T02:48:35.603 に答える