【问题标题】:how to get textView text in onclicklistener inside listView adapter如何在listView适配器内的onclicklistener中获取textView文本
【发布时间】:2014-09-25 12:32:38
【问题描述】:

我有一个列表视图,其中包含 imageView、TextView 和两个按钮

我想要的是,当我单击按钮时,例如,对于列表视图中的第三个项目,当我单击与文本视图处于相同位置的按钮时,我想要获取文本视图中的文本。 . 如何在 onclicklistener 的 getView() 内的列表视图适配器中执行此操作?

这是我的 SimpleArrayAdapter.java

   public class MySimpleArrayAdapter extends ArrayAdapter<String> {
     private final Context context;
     private final String[] values;

     public MySimpleArrayAdapter(Context context, String[] values) {
       super(context, R.layout.my_listview, values);
       this.context = context;
       this.values = values;
     }

     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
       LayoutInflater inflater = (LayoutInflater) context
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       View rowView = inflater.inflate(R.layout.my_listview, parent, false);
       Button d=(Button) rowView.findViewById(R.id.d);
       Button a=(Button) rowView.findViewById(R.id.a);
       TextView textView = (TextView) rowView.findViewById(R.id.label);
       ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
       textView.setText(values[position]);

       // Change the icon for Windows and iPhone
       String s = values[position];
       if (s.startsWith("Windows7") || s.startsWith("iPhone")
           || s.startsWith("Solaris")) {
         imageView.setImageResource(R.drawable.no);
       } else {
         imageView.setImageResource(R.drawable.ok);
       }

       d.setOnClickListener(new View.OnClickListener() {

           @Override
           public void onClick(View view) {
        // here where i want to get the current textview text


        Log.d(null, "");
    /*Intent intent = new Intent(context, MainActivity2.class);
    context.startActivity(intent);*/

    }
       });

       a.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View view) {
    Log.d(null, "aaaaaaaaaaaaaaaaa");

    }
    });


       return rowView;
     }
   } 

【问题讨论】:

    标签: java android eclipse listview


    【解决方案1】:

    在按钮onClick 只需这样做

    String txt = textView.getText().toString();
    

    即将您的代码重写为

     d.setOnClickListener(new View.OnClickListener() {
    
               @Override
               public void onClick(View view) {
            // here where i want to get the current textview text
        String txt = textView.getText().toString();  // add here
    
    
            Log.d(null, "");
        /*Intent intent = new Intent(context, MainActivity2.class);
        context.startActivity(intent);*/
    
        }
           });
    

    并将textview 改为final,即更改

     TextView textView = (TextView) rowView.findViewById(R.id.label);
    

    final TextView textView = (TextView) rowView.findViewById(R.id.label);
    

    【讨论】:

    • 已经尝试过了.. 但这将返回列表中最后一项的文本视图文本
    • @user3542555 乐于助人,享受。
    • 是的,你确实帮助了我很多,我浪费了很多时间来尝试这样做!再次感谢你:)
    • @user3542555 感谢此论坛的 Stackoverflow
    【解决方案2】:
    final TextView textView = (TextView) rowView.findViewById(R.id.label);
    
    d.setOnClickListener(new View.OnClickListener() {
    
               @Override
               public void onClick(View view) {
    
               String myText = textView.getText().toString();
    
            Log.d(null, "");
        /*Intent intent = new Intent(context, MainActivity2.class);
        context.startActivity(intent);*/
    
        }
           });
    

    【讨论】:

      【解决方案3】:

      使用

      String txtStr = textView.getText().toString();
      

      buttonclick事件中

      【讨论】:

        【解决方案4】:

        试试这个:

        final TextView textView = (TextView) rowView.findViewById(R.id.label);
        
        d.setOnClickListener(new View.OnClickListener() {
        
            @Override
            public void onClick(View view) {    
                textView.getText().toString();      
            }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-26
          • 2015-07-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多