2015-02-06 40 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爲「最終」。

相關問題