Я пытаюсь создать динамические кнопки.При нажатии на кнопку она должна перейти к указанному URL-адресу, назначенному тексту кнопки.
Для тестирования сначала я попытался получить этот идентификатор, если он равен, он печатает значение i
.Но всякий раз, когда я нажимаю какую-либо одну кнопку, вместо того, чтобы сказать это конкретное значение i
, он входит в полный цикл и печатает все значения i
, начиная с 1 до 19 (количество динамически создаваемых кнопок)
И после печати всех значений от 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();
}
}