[英]Clickable textView does not work
我有TextView
但是单击它后不起作用。
My java source code:
public class MainActivity extends ActionBarActivity {
public TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Relative layout oluşturduk
final RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.relativeLayout);
//Buttonumuzu oluşturduk
Button btn1 = (Button) findViewById(R.id.btnNotEkle);
//Alert dialog oluşturdul
final AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
//Edit Text oluşturduk
final EditText dersAdiGir = new EditText(MainActivity.this);
final EditText dersSaatiGir = new EditText(MainActivity.this);
tv1 = new TextView(MainActivity.this);
dersAdiGir.setHint("Ders Adi Giriniz");
dersSaatiGir.setHint("Ders Saati Giriniz");
dersSaatiGir.setInputType(InputType.TYPE_CLASS_NUMBER);
LinearLayout etLayout = new LinearLayout(MainActivity.this);
etLayout.setOrientation(LinearLayout.VERTICAL);
etLayout.addView(dersAdiGir);
etLayout.addView(dersSaatiGir);
build.setView(etLayout);
//Linear layout oluşturduk bu sayede alt alta ders adlarını sıralayacağız
final LinearLayout layoutDers = (LinearLayout) findViewById(R.id.layoutDers);
//Alert dialoga button ekledik
build.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Butttona tıkladığında olacaklar
tv1.setClickable(true);
String girilenDers = dersAdiGir.getText().toString();//EditText içinden girilen Text'i alacağız.
int girilenDersSaati = Integer.parseInt(dersSaatiGir.getText().toString());;
tv1.setText(girilenDers);//
layoutDers.addView(tv1);//Linearlayout'a dersi ekledik
dialog.dismiss();//Dialogdan çıktık.
}
});
//Yeni bir dialog oluşturduk. ve buttona tıklandığında dialog penceresi gösterilecek.
final AlertDialog alertDersAdi = build.create();
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alertDersAdi.show();
}
});
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this, NotEkle.class);
startActivity(intent);
}
});
}
}
当我单击TextView
它不会触发Intent
:(怎么了?请帮助我。谢谢大家。
您需要“查找” TextView。
tv1 = (TextView) findViewById(R.id./*id of your textview*/);
要设置ID,请将其添加到xml中的textView中:
android:id="@+id/textView"
要使TextView可点击,请将以下行添加到xml文件中的TextView中:
android:clickable="true"
或在您的Java类中:
textView.setClickable(true);
之后,您可以将onClickListener设置为:
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent inte = new Intent(MainActivity.this, NotEkle.class);
startActivity(inte);
}
});
编辑:所以在您的情况下:
Xml(如果您有):
<TextView
android:id="@+id/textview1"
.... />
并以编程方式添加Java类:
// For example If you're using a LinearLayout
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayoutID)
TextView txt1 = new TextView(MyClass.this);
txt1.setText("hallo hallo");
txt1.setClickable(true);
linearLayout.addView(txt1);
然后setOnClickListener
txt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent inte = new Intent(MainActivity.this, NotEkle.class);
startActivity(inte);
}
});
您将在此行将文本视图添加到布局中
layoutDers.addView(tv1);
因此,要使点击侦听器正常工作,必须仅在将点击侦听器添加到布局后,才能将其添加到视图中。 因此,请在上述代码行之后添加点击监听器。
您的代码不是很干净...但是这是您应该做的:
final AlertDialog.Builder build = new AlertDialog.Builder(MainActivity.this);
final TextView tv1 = new TextView(MainActivity.this);
tv1.setClickable(true);
//Butttona tıkladığında olacaklar
String girilenDers = dersAdiGir.getText().toString(); //EditText içinden girilen Text'i alacağız.
int girilenDersSaati = Integer.parseInt(dersSaatiGir.getText().toString());
tv1.setText(girilenDers);//
layoutDers.addView(tv1);//Linearlayout'a dersi ekledik
tv1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent inte = new Intent(MainActivity.this, NotEkle.class);
startActivity(inte);
}
});
// Set the View here...
build.setView(layoutDers);
build.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();//Dialogdan çıktık.
}
});
final AlertDialog alertDersAdi = build.create();
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alertDersAdi.show();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.