2013-04-16 72 views
1

我試圖讓textview點擊。我有50個textview,所以我用java代碼創建它們。問題是我不知道何讓他們點擊。如果我和XMl一起工作,那很容易,因爲這個問題已經被問了很多。textview可點擊無xml

這裏是我的代碼:

package com.example.goo; 

import android.app.Activity; 
import android.content.DialogInterface; 
import android.content.DialogInterface.OnClickListener; 
import android.os.Bundle; 
import android.widget.LinearLayout; 
import android.widget.ScrollView; 
import android.widget.TextView; 

public class Calendrier extends Activity implements OnClickListener{ 

    LinearLayout linear; 
    TextView[] textViewArray = new TextView[50]; 
    TextView[] textViewArray2 = new TextView[50]; 
    LinearLayout[] layoutArray = new LinearLayout[50]; 
    ScrollView SV; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);   

     SV = new ScrollView(this);   
     linear = new LinearLayout(this); 

     //Crée et Affiche les 50 textview sur lesquelles on cliquera 
     for (int i = 0; i < 50; i++) { 
      textViewArray[i] = new TextView(this); 
      textViewArray[i].isClickable(); 
      textViewArray[i].setText("Journée" + (i+1)); 
      linear.addView(textViewArray[i]); 
     } 

     //Création de 50 textview qui seront cette fois ajoutés dans leur layout perso 
     for (int i = 0; i < 50; i++) { 
      textViewArray2[i] = new TextView(this); 
      textViewArray2[i].setText("Journée" + (i+1)); 
     } 

     //Création 50 layout 
     for (int i = 0; i < 50; i++) { 
      layoutArray[i] = new LinearLayout(this); 
     } 

     for (int i = 0; i < 50; i++) { 
      layoutArray[i].addView(textViewArray2[i]); 
     } 

     linear.setOrientation(LinearLayout.VERTICAL); 

     SV.addView(linear); 
     setContentView(SV); 
    } 


    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     //What should I do here ? 
     //I'd like if I click on the textview n°1, the layout I create before (layoutArray[i] = new LinearLayout(this);) appears 
     if (dialog == textViewArray[0]){ 
       System.out.println("this text never prints :("); 
     } 

    } 
} 

回答

2

你忘了

textViewArray[i].setOnClickListener(this); 

而且,你從DialogInterface使用OnClickListener。這是錯誤的。您必須使用帶有文本視圖的View.OnClickListener

+0

我編輯我的代碼,我有現在這個: http://pastebin.com/1N09ztjA 我在做什麼仍然是錯的? – user1965878

+0

在你的屏幕中一切正常嗎?所有Textview都顯示? 在ToClick中嘗試另一種測試方法,如Toast.makeText(this,「test」,Toast.LENGTH_SHORT).show(); (沒有任何測試) – Pauland

+0

何我有一個愚蠢的錯誤(錯誤的複製/粘貼)。它很好用,非常感謝! – user1965878

1

首先使用View.OnClickListener而不是DialogInterface.OnClickListener。 然後你可以使用

textViewArray[i].setOnClickListener(this);