如何在android中的ListView内点击按钮获取当前项目字段值?

时间:2017-04-28 06:10:25

标签: android listview

我有一个android列表视图,其中包含一个RegNo(存在于listview内的textview中)值和两个按钮允许和拒绝。单击允许按钮我想根据RegNo值更新我的MS-SQL数据库。请建议如何在listview中为按钮创建click事件,并在bacend编码和写更新查询中获取RegNo(textview)值,

5 个答案:

答案 0 :(得分:1)

确保我没有正确地理解你。你有ListView,这个ListView的每个项目都有两个按钮。我对吗?如果是,那么您只需在getView函数中直接指定OnClickListeners即可。

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    View view = LayoutInflater.from(context).inflate(R.layout.resource, viewGroup, false);

    Button button = view.findViewById(R.id.button);
    TextView text = view.findViewById(R.id.textView);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //Logic goes here
        }
    });
    return view;
}

答案 1 :(得分:0)

如果我理解了您的要求,那么您正在寻找按钮上的监听器。为什么不试试,

// Retrieve the TextView first
TextView regView;
Button button = (Button) findViewById(R.id.allow);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
         // Get data from TextView
         String input = regView.getText().toString();
        // Update database
    }
});

参考https://developer.android.com/guide/topics/ui/controls/button.html#ClickListener

答案 2 :(得分:0)

您可以在按钮上添加标记

这里设置标签

String RegNo="REG NUMBER";
button.setTag(RegNo);

这里得到标签

public void buttonOnClick(View view){
    String RegNo=(String)view.getTag();
    ... // do your code here
}

答案 3 :(得分:0)

在来自adapterView类的事件回调中覆盖接口方法onItemSelected(),包括样本。

private OnItemSelectedListener onItemSelectedListener = new OnItemSelectedListener()
{
     @Override
     public void onItemSelected(AdapterView<?> parent, View view,
        int position, long id)
     {
         currentPosition= position;
     }

     @Override
     public void onNothingSelected(AdapterView<?> parent)
     {

     }
};

答案 4 :(得分:0)

LinearLayout parent= (LinearLayout)v.getParent();

Button allow= (Button)parent.getChildAt(0);
Button deny= (Button)parent.getChildAt(1);

allow.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      //perform your action here
    }
});