#java #android #eclipse
#java #Android #eclipse
Вопрос:
Я хочу получить список. Каждая строка — mas[i]. Онемение — это инт. Я получил ошибку eclipse:
Конструктор ArrayAdapter(новый вид.OnClickListener(){}, int, String[]) не определено
public class FirstActivity extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView NumbZK = (TextView)findViewById(R.id.editText2);
final int Numb = Integer.parseInt(NumbZK.getText().toString());
TextView modN = (TextView)findViewById(R.id.editText1);
final int N = Integer.parseInt(modN.getText().toString());
String[] mas = new String[N];
for (int i=0; i<N;i ){
mas[i]=Integer.toString(Numb%(i 1));
}
ListView lView = (ListView)findViewById(R.id.list);
lView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mas));
}
});
}
}
XML:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
/>
Справка
Комментарии:
1. Можете ли вы предоставить нам свой XML-файл? Так легче увидеть проблему
2. </LinearLayout> <ListView xmlns:android=» schemas.android.com/apk/res/android » android:id=»@android:id /список» android: layout_width=»match_parent» android:layout_height=»match_parent» android: drawSelectorOnTop=»false» />
3. 10-25 09:49:53.381: ОШИБКА / AndroidRuntime(14724): java.lang.RuntimeException: Невозможно запустить activity ComponentInfo{com.bla/com.bla.FirstActivity}: java.lang.RuntimeException: ваш контент должен иметь ListView, атрибут id которого ‘android.R.id .список’
Ответ №1:
Если ваш Activity
расширяется от ListActivity
, вам нужно объявить a ListView
with android:id="@android:id/list"
в вашем макете. Затем вы можете получить ListView
, позвонив getListView()
в свой Activity
Ссылка: http://developer.android.com/reference/android/app/ListActivity.html
Комментарии:
1. Нравится это?——— ListView LView = (ListView)findViewById(android.R.id.list); LView.setAdapter(новый ArrayAdapter<Строка>(это, android.R.layout.simple_list_item_1, mas)); <ListView xmlns:android=» schemas.android.com/apk/res/android » android:id=»@android:id /список» android: layout_width=»match_parent» android:layout_height=»match_parent» android: drawSelectorOnTop=»false» /> ——— получаем ошибку eclipse: конструктор ArrayAdapter<строка>(новый вид. OnClickListener(){}, int, String[]) не определено
2. Теперь вы получаете еще одну несвязанную ошибку, отредактируйте свой вопрос и добавьте больше кода.
3. Кажется, вы запускаете этот код внутри OnClickListener? Почему это так?
4. Потому что мне нужно сделать это после того, как я нажму на кнопку.
Ответ №2:
android:id="@ id/lView"
Поскольку это то, что вы ищете в своей деятельности.
Комментарии:
1. Это так, если вы расширяете Activity, а не ListActivity! Я делал это раньше много раз.
2. Я уверен, что он расширяет ListActivity, поскольку это ошибка, которую он получает: «ваш контент должен иметь listview, идентификатор атрибута которого равен «android.r.id.list»
3. Для голосования требуется 15 репутации
Ответ №3:
mas[i]="" (Numb%(i 1));
рассмотрите возможность замены приведенной выше строки на
mas[i] = "" Integer.toString(Numb%(i 1));
после просмотра вашего xml,
ListView lView = (ListView)findViewById(R.id.lView);
замените это на
ListView lView = (ListView)findViewById(R.id.list);
а также
lView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, mas));
с
lView.setAdapter(new ArrayAdapter<String>(youractivity.this,android.R.layout.simple_list_item_1, mas));
это должно быть заменено контекстом, этот метод не будет работать для onclicklistener.
ХТХ.
Комментарии:
1. Вы можете просто использовать getListView() вместо поиска представления по идентификатору.
2. Только если это
ListActivity
.3. сделано, но теперь произошла ошибка eclipse: конструктор ArrayAdapter<String>(новый вид. OnClickListener(){}, int, String[]) не определено
4. проверьте мой отредактированный ответ, это проблема с 1-м аргументом «this», вы должны поместить в него контекст действия. примите ответ, если он вам подходит.
5. О, это работа. Но теперь получил предыдущую ошибку в logcat: 10-25 11:50:40.000: ОШИБКА / AndroidRuntime (14950): java.lang.RuntimeException: Невозможно запустить activity ComponentInfo{com.bla/com.bla.FirstActivity}: java.lang.RuntimeException: ваш контент должен иметь ListView, атрибут id которого это «android.R.id.list»
Ответ №4:
Попробуйте добавить:
<ListView android:id="@android:id/lView/>
В файле макета