2013-04-16 71 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);