这是我需要做的非常罕见的事情,但我想知道是否可能。
我在自定义适配器的帮助下列在ListView
个项目中。到目前为止一切都那么好,但我现在需要编辑另一个包含ListView
的布局中的文本。
布局
<?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>
格式列表视图
<?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>
当您点击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");
}
}
我得到的错误是对象是null
。
答案 0 :(得分:1)
你的问题根本不奇怪:
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");
}
}
答案 1 :(得分:-2)
你将一个上下文传递给适配器,所以只需在你的MainActivity中创建一个方法,并从适配器调用它((MainActivity)mContext).methodToEffectTextView();