【问题标题】:android listview with Buttons how to get the value带有按钮的android listview如何获取值
【发布时间】:2014-01-03 10:09:17
【问题描述】:

我有一个 listView,每行有一个 TextView 和 3 个按钮。 现在我需要的是 - 每当单击 Button 时,该特定行中 textView 的值。

列表视图

[文本][按钮 1][按钮 2][按钮 3]

[文本][按钮 1][按钮 2][按钮 3]

[文本][按钮 1][按钮 2][按钮 3]

有什么建议吗?

我的代码:

public class UserCustomAdapter extends ArrayAdapter<User> {
Context context;
int layoutResourceId;
ArrayList<User> data = new ArrayList<User>();

public UserCustomAdapter(Context context, int layoutResourceId,
        ArrayList<User> data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View row = convertView;
    UserHolder holder = null;

    if (row == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        holder = new UserHolder();

        holder.textName = (TextView) row.findViewById(R.id.label);

        holder.btn1 = (Button) row.findViewById(R.id.button1);
        holder.btn2 = (Button) row.findViewById(R.id.button2);
        holder.btn3 = (Button) row.findViewById(R.id.button3);
        row.setTag(holder);
    } else {
        holder = (UserHolder) row.getTag();
    }
    User user = data.get(position);
    holder.textName.setText(user.getName());

    holder.textName.setTag(position);

    holder.btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Log.i("Delete Button Clicked", "**********");
            Toast.makeText(context, "B 1 button Clicked" + position,
                    Toast.LENGTH_LONG).show();
        }
    });

    holder.btn2.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Log.i("Delete Button Clicked", "**********");
            Toast.makeText(context, "B 2 button Clicked" + position,
                    Toast.LENGTH_LONG).show();
        }
    });

    holder.btn3.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Log.i("Delete Button Clicked", "**********");
            Toast.makeText(context, "B 3 button Clicked" + position,
                    Toast.LENGTH_LONG).show();
        }
    });

    return row;

}

static class UserHolder {
    TextView textName;

    Button btn1;
    Button btn2;
    Button btn3;
}

}

【问题讨论】:

  • 在你的onclick 中写String name=holder.textName.getText().toString();
  • 你需要文本视图的值还是需要知道点击了哪个按钮?

标签: android listview button onclick android-arrayadapter


【解决方案1】:

使用 holder.textName.getText().toString(); 从 Textview 中获取文本

holder.btn1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Log.i("Delete Button Clicked", "**********");
            Toast.makeText(context, "B 1 button Clicked" + position,
                    Toast.LENGTH_LONG).show();
         String Textname= holder.textName.getText().toString();

        }
    });

【讨论】:

    【解决方案2】:

    String s = holder.textName.getText().toString();

    打印s并显示TextView的值。

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      相关资源
      最近更新 更多