2015-02-06 57 views
-1

我有这段代码来创建一个动态表。 现在我想附加到onClick的每个TextView事件。当我点击一个TextView时,我想获取该值并执行一个方法。 所以这是我的代码:如何使用OnClickListener从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++); 
       } 
      } 

我使用此代码的onclick事件附加到所有的TextView,但我不知道我怎样才能得到的值:

importo.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    //to do 
    } 
}); 

回答

3

的来电显示该方法作为参数发送。 你可以从它在你的情况下,View v获取文本,或使用标签来识别它,等...

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

,参数的onClick,是importo同样的观点。你只需要转换为特定类型来访问它的成员

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

这只是一个想法,不知道这一点:

启动这样

List<TextView> botonN = new ArrayList<TextView>(); 

列表添加您的TextView在这动态创建或从xml创建之后列出。

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(); 

        } 
       }); 
      } 

再次它只是样品。

0

使用方法“的getText()”:

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

注意,你需要为了从内部类访问声明你的TextView为“最终”。

相关问题