0

イベントのリストであるリストビューがあります。イベントごとに、タイトルのすぐ横に編集および削除用のショートカット アイコンを配置したいと考えています。それらのいずれかをタブで移動すると、イベントを編集/削除するための別のインテントに移動するはずです。どうすればこれを達成できますか?

私のxmlには、次のようなリストビューがあります。

<ListView
    android:id="@+id/listView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >
</ListView>

各テキストビューについて:

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"  
 android:id="@+id/rowTextView"   
 android:layout_width="fill_parent"   
 android:layout_height="wrap_content"  
 android:padding="10dp"  
 android:textSize="16sp" >  
</TextView>  

ありがとうございました!

4

2 に答える 2

1

あなたがする必要があるのは、カスタムを作成し、次のようにメソッドAdapterをオーバーライドすることです:getView

    private class MySecondAdapter extends ArrayAdapter<MiniTask>
{   
    private ArrayList<MiniTask> list;

    public MySecondAdapter(Context context, int textViewResourceId, ArrayList<MiniTask> miniTaskList) 
    {
        super(context, textViewResourceId, miniTaskList);
         this.list = new ArrayList<MiniTask>();
         this.list.addAll(miniTaskList);
    }

    public View getView(final int position, View convertView, ViewGroup parent)
    {
        miniTask = miniTaskList.get(position);
        ViewHolder holder = new ViewHolder();
        {
            LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflator.inflate(R.layout.check_list_item_new, null);

            holder.title = (TextView) convertView.findViewById(R.id.tvItemTitle);
            holder.commentsPicturesButton = (ImageView) convertView.findViewById(R.id.iAddCommetOrPicture);
            holder.commentsPicturesButton.setTag(position);
            holder.commentsPicturesButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) 
                {
                     Intent intent = new Intent(getApplicationContext(), PicturesAndCommentsActivity.class);
                     intent.putExtra(TasksListActivity.KEY_ID, task.getId());
                     intent.putExtra("mini_task_text", miniTask.getTitle());
                     startActivity(intent);
                }
            });
            holder.selected = (CheckBox) convertView.findViewById(R.id.cbCheckListItem);
            holder.selected.setTag(position);
            holder.selected.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v)
                {    
                    {                               
                        Log.d(TAG, "pressed the checkbox: " + v.getId() + " in position: " + position + " tag: " +v.getTag() +" and item from array: " + miniTaskList.get(position) );
                        CheckBox checkbox = (CheckBox) v;
                        miniTaskList.get(position).setSelected(checkbox.isChecked());   
                        numOfCheckedMiniTasks = 0;
                        for(int i=0;i<miniTaskList.size();i++)
                        {
                             miniTask = miniTaskList.get(i);
                             if(miniTask.isSelected())
                             {
                                numOfCheckedMiniTasks ++;
                             }
                        }
                        int percent = (int)(numOfCheckedMiniTasks * 100.0f) / miniTaskList.size();
                        Log.d(TAG, "the percentage is: " +percent);
                        tasksRepository.get(tasksRepository.indexOf(task)).setMiniTasksPercentageComplete(percent);
                    }
                }
            });

        }
        holder.title.setText(miniTask.getTitle());
        holder.selected.setChecked(miniTask.isSelected());
        return convertView;
    }
}

この場合、すべての行にもチェックボックスがありますが、無視できます。ホルダーは次のとおりです。

static class ViewHolder 
{
     TextView title;
     CheckBox selected;
     ImageView commentsPicturesButton;
}

すべての行の XML レイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" 
android:background="@drawable/try2"
android:orientation="vertical" >
<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <CheckBox 
        android:id="@+id/cbCheckListItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_marginLeft="10dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/checkbox_checklist_selector" 
        android:button="@drawable/checkbox_checklist_selector" />
    <TextView
        android:id="@+id/tvItemTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingRight="10dp"
        android:paddingTop="13dp"
        android:text="@string/checklist_item_string"
        android:textColor="@color/my_darker_gray" />
  </LinearLayout>

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:paddingTop="6.5dp" >

    <ImageView
        android:id="@+id/iAddCommetOrPicture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:contentDescription="@drawable/comment_or_photo_icon"
        android:src="@drawable/comment_or_photo_icon" />
</RelativeLayout>

アップデート:

 holder.iParameterWidget.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) 
            {
                currentParameterPosition = position;
            }
        }
于 2013-03-10T07:59:37.827 に答える
0

このためには、カスタム行を個別に作成する必要があります。あなたが見つけることができる多くの例があります。次のリンクを参照して開始できます

http://androidzoo.wordpress.com/2011/10/28/working-with-listview-in-android-customize-listview-add-item-via-a-button-click-and-also-clickable-each-各行のボタン/

http://www.geekmind.net/2009/11/android-custom-list-item-with-nested.html

于 2013-03-10T07:15:26.570 に答える