【发布时间】:2017-08-30 06:03:30
【问题描述】:
我想更改按钮 onclicklistener 上的文本按钮,但每 5 行文本按钮显示相同的结果。我只想更改单击的 1 个按钮的文本按钮
xml 布局子视图
<Button
android:id="@+id/btn_seatmap"
style="@style/buttonSeatMap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_kereta_tiba"
android:layout_toRightOf="@+id/txt_info_seat"
android:focusable="false"
android:focusableInTouchMode="false"
android:text="@string/btn_seatmap" />
xml布局列表视图
<ListView
android:id="@+id/list_kereta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/btn_pilih_jadwal"
android:layout_below="@+id/txt_title_jadwal_kai"
android:layout_marginBottom="10dp"
android:background="@android:color/white"
android:choiceMode="singleChoice"
android:dividerHeight="1dp"
android:focusable="true"
android:scrollbars="none" />
这里是自定义适配器的代码
@Override
public View getView(final int arg0, View arg1, ViewGroup arg2) {
View view = arg1;
ListHolder listHolder = null;
if (view == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
view = inflater.inflate(layoutResourceId, arg2, false);
listHolder = new ListHolder();
listHolder.layout = (RelativeLayout) view
.findViewById(R.id.layout_jadwal_kai);
listHolder.txtNama = (TextView) view
.findViewById(R.id.txt_nama_kereta);
listHolder.txtBerangkat = (TextView) view
.findViewById(R.id.txt_kereta_brkt);
listHolder.txtHarga = (TextView) view
.findViewById(R.id.txt_harga_kereta);
listHolder.txtTiba = (TextView) view
.findViewById(R.id.txt_kereta_tiba);
listHolder.txtClass = (TextView) view
.findViewById(R.id.txt_kelas_kereta);
listHolder.txtSeat = (TextView) view
.findViewById(R.id.txt_info_seat);
listHolder.btnSeatMap = (Button) view
.findViewById(R.id.btn_seatmap);
CheckSeatOnProgress = false;
view.setTag(listHolder);
} else {
listHolder = (ListHolder) view.getTag();
}
listHolder.btnSeatMap.setTag(listHolder);
listHolder.btnSeatMap.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ListHolder holder = (ListHolder) v.getTag();
holder.btnSeatMap.setText("TEST");
// listHolder.btnSeatMap.setText("TEST");
});
适配器代码
public void refreshListJadwal() {
adapter = new AdapterListKereta(getActivity(),
R.layout.custom_list_jadwalkai, setGetJadwals, dataJadwalKereta);
listKereta.setAdapter(adapter);
}
每 5 行显示一次“TEST”。 请帮忙。谢谢
【问题讨论】:
-
发布适配器代码
-
@Raghavendra 我已经更新了我的问题
-
在onclick你可以这样试试吗? ((Button)v).setText("TEST"); ?
-
@Raghavendra 仍然是相同的结果,文本按钮每 5 行显示相同的结果
-
你能试试 Mangal 的回答吗?
标签: android listview android-arrayadapter android-adapter custom-adapter