设置列表以包含2个TextView

时间:2017-09-15 22:25:25

标签: android listview android-arrayadapter

我有一个包含TextView和ImageView的列表适配器。我可以为列表中的每个项目设置图像和文本。 TextView的变量是tvFullName。

我可以使用tvFullName将列表中的项目设置为文本并拥有tvFullNameOne 还将列表中的项目设置为文本?
像两个变量一样,每个变量都用文本创建列表中的项目?

这是我的布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center|left"
        android:padding="5dp" >

        <ImageView
            android:id="@+id/ivImage"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:src="@drawable/profile" />

        <TextView
            android:id="@+id/tvFullName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textColor="@android:color/white"
            android:textSize="16sp"
            android:paddingLeft="5dp"
            android:textStyle="bold" />

    </LinearLayout>

</LinearLayout>

适配器........

public View getView(int position, View convertView, ViewGroup parent) {
        View view = inflater.inflate(R.layout.relationship_inflater, null);
        Holder holder = new Holder();
        //connectOrDisconnectUser();
        holder.ivPhoto = (ImageView) view.findViewById(R.id.ivImage);
        holder.tvFullName = (TextView) view.findViewById(R.id.tvFullName);
        holder.tvFullName.setText(usersInfo.get(position).get(
                Relationship.TAG_USERNAME));
        imageLoader.DisplayImage(
                usersInfo.get(position).get(Relationship.TAG_PROFILE_PICTURE),
                holder.ivPhoto);
        return view;
    }

1 个答案:

答案 0 :(得分:0)

  

我尝试将我设置为同一个ListView的两个项目具有相同的onClick值

如果要在列表中的视图元素上单击事件,可以使用单个侦听器。

例如,使用您当前的代码

holder.ivPhoto = (ImageView) view.findViewById(R.id.ivImage);
// holder.ivPhoto.setOnClickListener();
holder.tvFullName = (TextView) view.findViewById(R.id.tvFullName);
// holder.tvFullName.setOnClickListener();

或者您可以查看在listview

上设置的项目侦听器中单击了哪个视图
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    long viewId = view.getId();

    switch(viewId) {
        case R.id.ivImage:
          Toast.makeText(MainActivity.this, "Image clicked", Toast.LENGTH_SHORT).show();
          break;
        case R.id.tvFullName:
            Toast.makeText(MainActivity.this, "Full name clicked", Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
}

至于你的问题,是的,你当然可以添加你想要的任何额外文字。