Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用OnClickListener从TextView获取值?_Java_Android_Onclicklistener - Fatal编程技术网

Java 如何使用OnClickListener从TextView获取值?

Java 如何使用OnClickListener从TextView获取值?,java,android,onclicklistener,Java,Android,Onclicklistener,我有这个代码来创建一个动态表。 现在我想在onClick上为每个TextView附加一个事件。当我点击TextView时,我想获取值并执行一个方法。 这是我的代码: TableLayout ll=(TableLayout) view.findViewById(R.id.displayLinear); TableRow.LayoutParams rowParams = new T

我有这个代码来创建一个动态表。 现在我想在onClick上为每个TextView附加一个事件。当我点击TextView时,我想获取值并执行一个方法。 这是我的代码:

                TableLayout ll=(TableLayout) view.findViewById(R.id.displayLinear);  

                TableRow.LayoutParams rowParams = 
                        new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, 0, 1f);

                TableRow.LayoutParams itemParams = 
                        new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, 
                                TableRow.LayoutParams.WRAP_CONTENT, 1f);

                int i = 1;
                for (Iterator<OperazioniClienti> it = listaOperazioni.iterator(); it.hasNext();) {
                    OperazioniClienti op = it.next();

                    TableRow row= new TableRow(getActivity());
                    //TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT);
                    //row.setLayoutParams(lp);

                    row.setLayoutParams(rowParams);

                    data.setBackgroundResource(R.drawable.shape_edittext_row);
                    data.setLayoutParams(itemParams);

                    TextView codFattura = new TextView(getActivity());
                    codFattura.setText(op.getCodiceFattura().toString());
                    codFattura.setBackgroundResource(R.drawable.shape_edittext_row);
                    codFattura.setLayoutParams(itemParams);


                    Double saldo = op.getSaldo();
                    TextView importo = new TextView(getActivity());
                    importo.setLayoutParams(itemParams);
                    importo.setBackgroundResource(R.drawable.shape_edittext_row);
                    importo.setGravity(Gravity.RIGHT);
                    importo.setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {
                            //to do
                        }
                    });

                    importo.setText("SALDATA"); 
                    importo.setTextColor(Color.BLUE);

                    row.addView(codFattura);
                    row.addView(importo);
                    ll.addView(row,i++);
                }
            }

方法的调用方作为参数发送。 您可以从中获取文本,或者使用标记来标识它,等等

importo.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
     TextView myTextView = (TextView)v;
   }
});

在您的案例中,
onClick
的参数
View v
importo
的视图相同。您只需强制转换为特定类型即可访问其成员

importo.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
     TextView import = (TextView)v;
   }
});

这只是一个不确定的想法:

列出这样的清单

List<TextView> botonN = new ArrayList<TextView>();
并设置单击操作

    for (int index = 0; index < botonN.size(); index++) {
                botonN.get(index).setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                      Here you can get Text
String value = botonN.get(index).getTex().toString();

                    }
                });
            }
for(int index=0;index
同样,这只是示例。

使用方法“getText()”:

注意,您需要将TextView声明为“final”,以便从内部类访问它

 botonN.add(your_textView);
    for (int index = 0; index < botonN.size(); index++) {
                botonN.get(index).setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {
                      Here you can get Text
String value = botonN.get(index).getTex().toString();

                    }
                });
            }
final TextView importo = new TextView(getActivity());
importo.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        String text = importo.getText();
    }
});