获取listview中所选项目的当前文本颜色

时间:2018-04-16 07:15:30

标签: android listview textcolor

我想获取listview中所选项目的currant文​​本颜色,然后相应地编码。任何人都可以帮助我

  fieldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            informationType = fieldlist.getItemAtPosition(position).toString().replace(" ", "");

3 个答案:

答案 0 :(得分:0)

您可以使用 getCurrentTextColor()

找到文字颜色

代表: -

textviewname.getCurrentTextColor();

答案 1 :(得分:0)

第一个我建议您使用RecyclerView而不是ListView。但是对于ListView,您可以通过以下方式获取当前文本颜色。

在适配器中

@Override
public View getView(int position, View convertView, ViewGroup parent) {
   // Your logic to getView

   convertView.setTag(yourTextView.getCurrentTextColor();)
   return convertView;
}

然后在OnitemClickListener

fieldlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        informationType = fieldlist.getItemAtPosition(position).toString().replace(" ", "");
        int currentTextColor = view.getTag();
    }
}

答案 2 :(得分:0)

更新

  1. 如下所示创建一个界面,您可以将其创建为单独的类或作为活动/片段的一部分。
  2. public class ListItemClickNotifier { void onListItemClick(int colorCode); }

    1. 在您的片段/活动类中实现此接口,如下所示。
    2. `ListItemClickNotifier listClickListener = new ListItemClickNotifier(

         @Override
         onListItemClick(int colorCode) {
          if (colorCode == Color.Green) {
             // Do your stuff here.
          }
      });`
      
      1. 在初始化适配器时将此接口作为对象传递。如下所示。

        MyAdapter adapter = new MyAdapter(context, arraylist, listClickListener);

      2. 在适配器类中创建ListItemClickListener的全局对象,并通过构造函数将传递的对象复制到其中,如下所述。

      3. private ListItemClickNotifier mListClickListener; public MyAdapter(Context context, ArrayList arrayList, ListItemClickNotifier listClickListener) { mListClickListener = listClickListener;
        }

        1. 在getView方法中为适配器中的视图创建一个单击侦听器,如下所示。

          @覆盖     public View getView(int position,View convertView,ViewGroup parent){     ViewHolder holder = null;     if(convertView == null){     convertView = mInflater.inflate(R.layout.my_layout,null);     holder = new ViewHolder();     holder.textView =(TextView)convertView.findViewById(R.id.tv);     convertView.setTag(保持器);     } else {     holder =(ViewHolder)convertView.getTag();     }     convertView.setOnClickListener(new OnClickListener {

          @Override
          public void Onclick(View view) {
                       mListClickListener.onListItemClick(holder.textView.getCurrentTextColor());
          }
          });
          return convertView;
          }