从表格布局Android中的TextView单击获取行值

时间:2017-07-31 16:44:18

标签: android

TextView Edit = new TextView(this);
Edit.setClickable(true);
Edit.setPaintFlags(Edit.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
Edit.setText("Edit");

Edit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        Intent myIntent = new Intent(ViewTransactions.this,
                            UpdateTransaction.class);
        myIntent.putExtra("Id",acd);
        Toast.makeText(ViewTransactions.this, "This is my Toast message!"+ acd,
        Toast.LENGTH_LONG).show();
        startActivity(myIntent);
        finish();
    }
});

Edit.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,
                    TableRow.LayoutParams.WRAP_CONTENT));
Edit.setPadding(5, 5, 5, 5);
Edit.setBackgroundColor(Color.GRAY);
Ll = new LinearLayout(this);
params = new LinearLayout.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
                    TableRow.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 2, 2, 2);
//Ll.setPadding(10, 5, 5, 5);
Ll.addView(Edit, params);
tr.addView((View) Ll);

我已经动态创建了一个TableRow但是我希望获得从TableRow中的TextView中单击的TableRow的id。但是,每次我点击编辑或删除时,它将占用表格的最后一行而不是我选择的行。我见过其他论坛,但他们的论坛是整行,而不是特定的单元格TextView how my table looks like

enter image description here

2 个答案:

答案 0 :(得分:0)

在onClick方法中:

@Override
            public void onClick(View v) {
               String textFromView = ((TextView) v).getText();
               //TODO now do whatever you will with the text

答案 1 :(得分:0)

您可以将每行的ID保存为“编辑”TextView

中的标记
 Edit.setTag(rowId);

然后在点击时检索它

 Edit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int rowId = (int) v.getTag();
            }
        });