Java 无需xml即可单击文本视图
我正在尝试使textview可点击。我有50个textview,所以我用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
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();(没有任何测试)我犯了一个愚蠢的错误(错误的复制/粘贴)。效果很好,谢谢!