gpt4 book ai didi

android - onClickListener 在我的 Activity 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 15:42:50 27 4
gpt4 key购买 nike

我的布局有 13 个 TextView,单击它们会更改 ListView 项。

这是我的 Activity :

public class ExampleActivity extends ListActivity implements
OnClickListener {

private String[] sa = new String[100];
private ListView lv;
private Context context = this;
private ArrayAdapter adapter;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new LongOperation().execute("1");
lv = getListView();
}

private class LongOperation extends AsyncTask<String, Void, String> {

private ProgressDialog dialog = new ProgressDialog(
ExampleActivity.this);

@Override
protected String doInBackground(String... params) {

int i = Integer.parseInt(params[0]);
for (int n = 0; n < 100; n++) {
if (i != 5 && i != 10) {
sa[n] = "Item" + i;
} else {

}
}
return params[0];
}
@Override
protected void onPostExecute(String result) {

adapter = new ArrayAdapter<Object>(context,
android.R.layout.simple_list_item_1, sa);
lv.setAdapter(adapter);
this.dialog.dismiss();
}
@Override
protected void onPreExecute() {

this.dialog.setMessage("Please wait");
this.dialog.show();
}
@Override
protected void onProgressUpdate(Void... values) {

}
}
public void onClick(View v) {

Log.d("onClick", v.getId() + "**");
int id = v.getId();

switch (id) {

case R.id.tv1: {

new LongOperation().execute("1");
}
case R.id.tv2: {

new LongOperation().execute("2");
}
case R.id.tv3: {

new LongOperation().execute("3");
}
case R.id.tv4: {

new LongOperation().execute("4");
}
case R.id.tv5: {

new LongOperation().execute("5");
}
case R.id.tv6: {

new LongOperation().execute("6");
}
case R.id.tv7: {

new LongOperation().execute("7");
}
case R.id.tv8: {

new LongOperation().execute("8");
}
case R.id.tv9: {

new LongOperation().execute("9");
}
case R.id.tv10: {

new LongOperation().execute("10");
}
case R.id.tv11: {

new LongOperation().execute("11");
}
case R.id.tv12: {

new LongOperation().execute("12");
}
case R.id.tv13: {

new LongOperation().execute("13");
}
}
}
}

当我启动应用程序时,listView 被填充为 item1。但是当我单击任何 TextView 时,不会触发 onClick 方法。我使用日志检查了它。

谢谢。

最佳答案

因为您没有注册 onClickListener 到您的TextViews,因此您的 TextViews 没有获得 Clicked 事件。

为此你必须做类似的事情,

onCreate()
{


TextView tv1 = (TextVIew)findViewById(R.id.tv1);
tv1.setOnClickListener(this);

更好的解决方案:

在您的 Activity 的 xml 布局文件中,

在你所有的 TextView 中放置属性 android:onClick="textClick"

现在从您的 Activity 中删除 onClickListener 并只写

public void textClick(View TextView)

在你的 Activity 中。那么你就不用为所有的TextView注册onClicklistener了。 Android 会自动为您服务..

关于android - onClickListener 在我的 Activity 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com