![](/img/trans.png)
[英]Writing Click Event for a textview within a custom listview in android
[英]Android Textview on click in Listview
好吧,我已經用list_row_layout填充了一個listview(這是一個帶有http json的人群),並且每個人都很酷,但我在listview中可以點擊一個Textview,並且我將settext()onclick給了那個textview,但是listview中的所有項目都改變了文字到。 如何在點擊時將文字設置為單擊文本視圖?
這里的代碼
這是textview
<TextView
android:id="@+id/acceptTV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:background="@drawable/pressed"
android:gravity="fill"
android:text="Approve"
android:focusable="false"
android:textColor="#0D98BA"
android:textSize="17sp" />
這是適配器類,其中textview用serializable填充
private Context mContext;
public CustomListAdapter(Context context, ArrayList<FeedItem> listData) {
this.listData = listData;
layoutInflater = LayoutInflater.from(context);
mContext = context;
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.list_row_layout, null);
holder = new ViewHolder();
holder.headlineView = (TextView)convertView.findViewById(R.id.acceptTV);
holder.reportedDateView = (TextView) convertView.findViewById(R.id.high);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
FeedItem newsItem = (FeedItem) listData.get(position);
holder.headlineView.setText(Html.fromHtml(newsItem.getlow()));
holder.reportedDateView.setText(Html.fromHtml(newsItem.gethigh()));
holder.accept = (TextView) convertView.findViewById(R.id.approveTV);
holder.accept.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View argView ) {
holder.approve.setText("Accepted");
}
});
return convertView;
}
static class ViewHolder {
TextView accept;
TextView headlineView;
TextView reportedDateView;
ImageView imageView;
}
將onClickListener添加到textview。 例如:
tv1.setOnClickListener(this);
tv2.setOnClickListener(this);
tv3.setOnClickListener(this);
在onClLick中:
@Override
onClick(View v){
TextView tv = (TextView)v
tv.setText("Your text");
}
這樣的事情應該做到這一點。
試試這種方式
public void onClick(View argView ) {
((TextView)argView).setText("Accepted");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.