我有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
:(出了什么问题?请帮帮我。谢谢大家。
答案 0 :(得分:0)
您需要“找到”TextView。
tv1 = (TextView) findViewById(R.id./*id of your textview*/);
要设置ID,请将其添加到xml中的textView:
android:id="@+id/textView"
答案 1 :(得分:0)
要使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);
}
});
答案 2 :(得分:0)
您正在此行的布局中添加文字视图
layoutDers.addView(tv1);
因此,要使点击侦听器起作用,只有在将视图添加到布局后才能将点击侦听器添加到视图中。所以在上面一行之后添加点击监听器。
答案 3 :(得分:0)
你的代码不是很干净......但这是你应该做的:
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();
}
});