0

我有一个带有不同组件(2 个线性布局和一个按钮)的列表视图,我想要做的是当我单击其中一个线性布局内的按钮时,我想访问另一个线性布局内的文本视图,是吗可能的 ?

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

    <ListView
        android:id="@+id/listV2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <ImageView
            android:id="@+id/icon"
            android:layout_width="85dp"
            android:layout_height="wrap_content" />

        <LinearLayout
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/nom"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@color/textCname"
                android:textSize="21dp"

                android:textStyle="bold" />

            <TextView
                android:id="@+id/numero"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textSize="12dp"
                android:textColor="@color/textCother"
                android:textStyle="italic" />
            <TextView
                android:id="@+id/ville"
                android:layout_width="match_parent"
                android:textColor="@color/textCother"
                android:layout_height="wrap_content"
                android:textSize="12dp"
                android:textStyle="italic" />
        </LinearLayout>

        <Button
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:visibility="invisible" />
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="end"
            >
            <ImageView
                android:id="@+id/remove"
                android:onClick="contactRemove"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <ImageView
                android:id="@+id/edit"
                android:onClick="contactEdit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
                android:layout_marginLeft="22dp"/>

            <ImageView
                android:onClick="contactCall"
                android:id="@+id/call"
                android:layout_marginLeft="22dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

我想要做的是访问 android:id="@+id/numero" 当我点击其中一个图像视图时的值

4

2 回答 2

1

您可以设置OnClickListenerView 类提供的接口。像这样的东西。

在您的活动类上实现监听器

public class SpinnerActivity extends AppCompatActivity implements
    View.OnClickListener

为您的视图声明类级别变量

private TextView tvNumero;
private ImageView ivRemove, ivEdit, ivContactCall;

onCreate()在方法中查找初始化值

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gildi_spinner);

    tvNumero = (TextView) findViewById(R.id.numero)
    ivRemove = (ImageView) findViewById(R.id.remove);
    ivEdit = (ImageView) findViewById(R.id.edit);
    ivContactCall = (ImageView) findViewById(R.id.contactCall);

    ivRemove.setOnClickListener(this);
    ivEdit.setOnClickListener(this);
    ivContactCall.setOnClickListener(this);
}

从 实现的类Onclickistener,您可以在其中获得注册视图的点击事件

@Override
public void onClick(View v) {

    switch (v.getId()) {
        case R.id.remove:
        case R.id.edit:
        case R.id.contactCall:
            Toast.makeText(this, tvNumero.getText().toString(), Toast.LENGTH_SHORT).show();
            break;
    }
}

注意tvNumero.getText().toString()给你你想要的值 TextView

更新

  • 首先替换你ListViewRecyclerView

请参阅RecyclerView 示例教程。

  • 其次为您列出的项目实现onClick

参考recyclerview-onclick教程。

于 2018-04-30T05:43:52.023 回答
1

在创建适配器时传递上下文,使用该上下文来获取膨胀视图。

Adapter adapter = new Adapter(this);

然后在 Adpater Class 构造函数中:

public Adapter(Context context){
context.findViewById(R.id.textview);//consider this as numero textview
}

然后根据您的要求访问它。希望能帮助到你!

于 2018-04-30T06:12:34.773 回答