简体   繁体   English

在其他布局android中将文本设置为textview

[英]set text to textview in other layout android

It's a very rare thing that I need to do, but I wanted to see if it was possible. 这是我需要做的非常罕见的事情,但是我想看看是否有可能。

I am listing in a ListView items with the help of a custom adapter. 我在自定义适配器的帮助下列出了ListView项目。 So far so good, but what I need now edit the text in another layout which contains my ListView . 到目前为止,一切都很好,但是我现在需要在另一个包含ListView布局中编辑文本。

Layout 布局

<?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="match_parent"
android:background="#F2F2F2"
android:gravity="top"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Disponibles"
    android:layout_marginTop="15dp"
    android:gravity="center"
    android:textColor="#000000"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/txtDisponibles"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:textSize="40dp"
    android:gravity="center"
    android:text="" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="28dp"
    android:background="@drawable/titulo_lista"
    android:text="Inscripciones"
    android:paddingBottom="5dp"
    android:paddingTop="5dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#FFFFFF" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/EditText01"
    android:cacheColorHint="#00000000" 
    android:textColor="#000000"
    android:textSize="15sp" />

</LinearLayout>

Format listview 格式化列表视图

<?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" >

<TextView
    android:id="@+id/txtNombre"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="10dp"
    android:paddingLeft="10dp"
    android:text="TextView" />

<TextView
    android:id="@+id/txtTicket"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txtNombre"
    android:paddingLeft="10dp"
    android:text="TextView" />

<TextView
    android:id="@+id/txtOrden"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txtTicket"
    android:paddingLeft="10dp"
    android:text="" />

<TextView
    android:id="@+id/txtAsiento"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txtOrden"
    android:paddingLeft="10dp"
    android:visibility="gone"
    android:text="" />

 <TextView
    android:id="@+id/txtNumero"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/txtAsiento"
    android:paddingLeft="10dp"
    android:visibility="gone"
    android:text="" />

<Button
    android:id="@+id/button1"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/txtOrden"
    android:layout_alignParentRight="true"
    android:layout_marginRight="23dp"
    android:background="@drawable/btn_green_small"
    android:maxHeight="48dp"
    android:maxWidth="80dp"
    android:shadowColor="#A8A8A8"
    android:text="Validar"
    android:textColor="#FFFFFF" />

<TextView
    android:id="@+id/txtMensaje"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/button1"
    android:text="SDSDSDS"
    android:layout_marginRight="18dp"
    android:visibility="gone"
    android:textSize="10dp" />

 </RelativeLayout>

Each item in my ListView has a Button when you click on that Button need to change the value of txtDisponible the layout container. 在我的每个项目ListView有一个Button ,当你点击那个Button需要改变的值txtDisponible布局容器。

holder.btn.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                     TextView t=(TextView)layout.findViewById(R.id.txtDisponible);
                     t.setText("E-ticket validado");
                }
}

The error I get is that the object is null . 我得到的错误是该对象为null

Your question is not odd at all: 您的问题一点也不奇怪:

holder.btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Activity activity = (Activity)getContext();
        TextView t = (TextView)activity.findViewById(R.id.txtDisponible);
        t.setText("E-ticket validado");
    }
}

您将上下文传递给适配器,因此只需在您的MainActivity中创建一个方法,然后从适配器调用它,例如((MainActivity)mContext).methodToEffectTextView();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM