Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 无需xml即可单击文本视图_Java_Android_Click_Textview - Fatal编程技术网

Java 无需xml即可单击文本视图

Java 无需xml即可单击文本视图,java,android,click,textview,Java,Android,Click,Textview,我正在尝试使textview可点击。我有50个textview,所以我用java代码创建它们。问题是我不知道如何让它们可以点击。如果我使用XMl,这将很容易,因为这个问题已经被问了很多 这是我的密码: package com.example.goo; import android.app.Activity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener

我正在尝试使textview可点击。我有50个textview,所以我用java代码创建它们。问题是我不知道如何让它们可以点击。如果我使用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 :( ");
        }

    }
}
package com.example.goo;
导入android.app.Activity;
导入android.content.DialogInterface;
导入android.content.DialogInterface.OnClickListener;
导入android.os.Bundle;
导入android.widget.LinearLayout;
导入android.widget.ScrollView;
导入android.widget.TextView;
公共类日历扩展活动实现OnClickListener{
线性布局线性;
TextView[]textViewArray=新建TextView[50];
TextView[]textViewArray2=新的TextView[50];
LinearLayout[]布局阵列=新的LinearLayout[50];
滚动视图SV;
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
SV=新的滚动视图(此);
线性=新的线性布局(本);
//克里奎拉河畔的50个文本视图
对于(int i=0;i<50;i++){
textViewArray[i]=新的TextView(此);
textViewArray[i].isClickable();
textViewArray[i].setText(“日志”+(i+1));
linear.addView(textViewArray[i]);
}
//50个文本视图的注释必须与布局人员保持一致
对于(int i=0;i<50;i++){
textViewArray2[i]=新的TextView(本);
textViewArray2[i].setText(“日志”+(i+1));
}
//Création 50布局
对于(int i=0;i<50;i++){
布局阵列[i]=新的线性布局(本);
}
对于(int i=0;i<50;i++){
layoutArray[i].addView(textViewArray2[i]);
}
线性。设置方向(线性布局。垂直);
SV.addView(线性);
setContentView(SV);
}
@凌驾
public void onClick(DialogInterface dialog,int which){
//我在这里该怎么办?
//如果我单击文本视图n°1,则会出现我之前创建的布局(layoutArray[I]=new LinearLayout(this);)
if(dialog==textViewArray[0]){
System.out.println(“此文本从不打印:(”);
}
}
}
你忘了

textViewArray[i].setOnClickListener(this);
并且,您使用DialogInterface中的OnClickListener。这是错误的。您必须首先将View.OnClickListener与textview一起使用,而不是使用DialogInterface.OnClickListener。 然后你可以用

textViewArray[i].setOnClickListener(this);

我编辑了我的代码,现在我有了这样一个问题:我到底做错了什么?在你的屏幕上一切正常吗?所有文本视图都显示出来了吗?在OnClick中尝试另一种测试方法,比如Toast.makeText(这个“test”,Toast.LENGTH_SHORT)。show();(没有任何测试)我犯了一个愚蠢的错误(错误的复制/粘贴)。效果很好,谢谢!