将onClickListener事件添加到自定义ArrayAdapter

时间:2013-12-16 22:25:38

标签: android android-arrayadapter android-custom-view

我正在创建一个自定义ArrayAdapter来显示一个任务数组(大约12个),并带有自定义xml视图。适配器从活动传递字符串,即标题,主题,日期和URL。 我的问题是,无论如何都要生成一个onItemClickListener或任何类型的监听器,如下所示'holder.item1',以便在webview中打开字符串'URL',而也传递http标头

我的班级(TaskAdapter.java):

    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.TextView;

    public class TaskAdapter extends ArrayAdapter<Custom>{
    private ArrayList<Custom> entries;
    private Activity activity;

    public TaskAdapter(Activity a, int textViewResourceId, ArrayList<Custom> entries) {
        super(a, textViewResourceId, entries);
        this.entries = entries;
        this.activity = a;
    }

    public static class ViewHolder{
        public TextView item1;
        public TextView item2;
        public TextView item3;
        public TextView item4;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        ViewHolder holder;
        if (v == null) {
            LayoutInflater vi =
                (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.activity_tasks_adapter, null);
            holder = new ViewHolder();
            holder.item1 = (TextView) v.findViewById(R.id.taskLeft);
            holder.item4 = (TextView) v.findViewById(R.id.textLink);

            v.setTag(holder);
        }
        else
            holder=(ViewHolder)v.getTag();

        final Custom custom = entries.get(position);
        if (custom != null) {
            holder.item1.setText(custom.getAssignment());
            holder.item4.setText(custom.itemLink());
        }
        return v;
    }

}

我的XML(activity_task_adapter.xml):

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:layout_height="fill_parent" >        

    <TextView
        android:id="@+id/taskLeft"
        android:layout_width="fill_parent"
        android:layout_height="55dp"
        android:gravity="center_vertical"
        android:text="Left"
        android:paddingLeft="20dp"
        android:background="#eedbde"
        android:textColor="#333333"
        android:autoLink="web"
        android:textSize="20sp" >
    </TextView>  

    <TextView
        android:id="@+id/textLink"
        android:layout_width="fill_parent"
        android:layout_height="55dp"
        android:gravity="center_vertical"
        android:clickable="true"
        android:text="Left"
        android:paddingLeft="20dp"
        android:background="#eedbde"
        android:textColor="#333333"
        android:textSize="20sp" >
    </TextView>          

</LinearLayout> 

我已经尝试在item1上使用setOnClickListener但是没有用,而且我在SO上找到的与此类似的唯一内容如下:

ArrayAdapter custom with AutocompleteTextView and onclicklistener

0 个答案:

没有答案