簡體   English   中英

點擊Listview中的Android Textview

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM