我正在嘗試創建動態按鈕。當點擊一個按鈕時,它應該轉到指定給該按鈕文本的指定url。動態按鈕Onclick監聽器
對於測試,首先嚐試獲取該ID,如果相等則打印值爲i
。但每當我點擊任何一個按鈕,而不是告訴具體的i
值,它將進入整個循環,並打印從1到19(動態創建的按鈕數量)的所有i
的值。
而後打印所有值從1到19,該程序越來越強制關閉,說Null pointer exception
。
我甚至通過將處理程序代碼之外onCreate()
試過,但我仍然得到同樣的錯誤。
for (i = 0; i <itemList.getTitle().size()-1; i++) {
title[i] = new TextView(this);
title[i].setTextColor(-16711936);
title[i].setTextSize(18);
title[i].setText("Title = "+itemList.getTitle().get(i));
description[i] = new TextView(this);
description[i].setTextColor(-16776961);
description[i].setText("Description = "+itemList.getDescription().get(i)+"......");
more[i]=new Button(this);
more[i].setText(itemList.getLink().get(i));
layout.addView(title[i]);
System.out.println("Title view is set");
layout.addView(description[i]);
//System.out.println("Description view is set");
layout.addView(more[i]);
more[i].setOnClickListener(listener);
}
private OnClickListener listener=new OnClickListener(){
public void onClick(View arg) {
int index = 0;
for (i = 0; i < more.length; i++)
{
if (more[i].getId() == arg.getId())
{
index = i;
System.out.println("Value of i onclick is"+i);
}
}
//System.out.println("Vlaue of I in onclick"+i);
//Uri uri=Uri.parse(itemList.getLink().get(i));
//startActivity(new Intent(Intent.ACTION_VIEW,uri));
//Toast.makeText(getApplicationContext(), "This button is clicked"+i+more[i].getText()+itemList.getLink().get(i),Toast.LENGTH_LONG).show();
}
}
的ID Thanks.But還在說空指針異常,沒有打印任何I值 – 2012-03-08 17:28:01
你能更新您的文章完整的錯誤日誌和完整的代碼? – Andreas 2012-03-09 07:20:44