public class MainActivity extends Activity {
private static final String[] lakes = { "Superior","Victoria","Huron","lakhani","sagar","surat","pune","gujarat",
"baroda","jayesh","mahesh","suresh","chirag","laptop"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView)findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lakes);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AlertDialog.Builder abd = new AlertDialog.Builder(MainActivity.this);
abd.setTitle("selected item");
abd.setMessage("selected item is=" + listView.getItemAtPosition(View.SCROLLBAR_POSITION_DEFAULT));
abd.setPositiveButton("Ok", null);
abd.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
this error diaplay
Gradle: local variable listView is accessed from within inner class; needs to be declared final
ответ
Попробуйте это ..
private static final String[] lakes = { "Superior","Victoria","Huron","lakhani","sagar","surat","pune","gujarat",
"baroda","jayesh","mahesh","suresh","chirag","laptop"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView = (ListView)findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lakes);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AlertDialog.Builder abd = new AlertDialog.Builder(MainActivity.this);
abd.setTitle("selected item");
abd.setMessage("selected item is=" + listView.getItemAtPosition(i));
abd.setPositiveButton("Ok", null);
abd.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
Вы имеете два опцию- Сделать ListView
регионом в миреListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
или сделать окончательный
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView = (ListView)findViewById(R.id.listView);
попробуйте этот код
final ListView listView = (ListView)findViewById(R.id.listView);
Либо вы меняете listview dec бъявлению для этого:
final ListView listView = (ListView)findViewById(R.id.listView);
или объявить ListView вне метода OnCreate.
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
Вы можете объявить ListView как член класса, то внутри на itemclick
String s = (String) adapterView.getItemAtPosition(i);
Используйте строку, чтобы отобразить его в диалоговом окне.
AlertDialog.Builder abd = new AlertDialog.Builder(MainActivity.this);
abd.setTitle("selected item");
abd.setMessage("selected item is=" + s);
abd.setPositiveButton("Ok", null);
abd.show();
Если вы хотите отобразить его в тосте.
Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();
Сфера действия
ListView listView = (ListView)findViewById(R.id.listView);
конца внутри функцииonCreate
.
Таким образом, каждый раз, когда функция onCreate(savedInstanceState)
называется ваш объект ListView создается и значения устанавливаются в него из функции (ListView)findViewById(R.id.listView)
.
Но на конце функции объект растворен и вы будете не быть с переменной
listView
где-нибудь еще в классе.
Проблема решается при создании переменной вне функции onCreate
и внутри класса MainActivity
Попробуйте прочитать это для большего понимания о scope of a variable
Это должно работать
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Object s=adapterView.getItemAtPosition(i);
final String selectedItem=s.toString();
AlertDialog.Builder abd = new AlertDialog.Builder(MainActivity.this);
abd.setTitle("selected item");
abd.setMessage("selected item is=" + selectedItem);
abd.setPositiveButton("Ok", null);
abd.show();
}
});
}
- 1. ListView внутри ScrollViewer: выбранный элемент не отображается
- 2. ListView выбранный элемент не виден
- 3. Как установить элемент в диалоговом окне предупреждения?
- 4. Как отобразить выбранный элемент в диалоговом окне спиннера?
- 5. imageviewtouch не отображается в диалоговом окне
- 6. загрузчик андроида не отображается в диалоговом окне
- 7. Fullcalendar не отображается в диалоговом окне
- 8. Game Center не отображается в диалоговом окне
- 9. Dropbox не отображается в диалоговом окне filepicker
- 10. UITextField в диалоговом окне ввода не отображается
- 11. listView Centered в диалоговом окне в Android
- 12. Использование ListView в диалоговом окне или в другом действии
- 13. DropdownList Не отображается выбранный элемент
- 14. Android CustomAdapter для listView в диалоговом окне
- 15. Удалить добавленный элемент в диалоговом окне закрыть
- 16. Элемент подсветки ListView не отображается
- 17. Проверить выбранный элемент ListView
- 18. ListView выбранный элемент drawable
- 19. listview Выбранный элемент
- 20. хочу показать изображение OnItemClick в элементе listview в диалоговом окне
- 21. Исключение Null Pointer в диалоговом окне ListView
- 22. ListView - Выбранный элемент в середине
- 23. Deselect выбранный элемент в ListView
- 24. ListView выбранный элемент в TextBox
- 25. Выбранный элемент строки в ListView
- 26. Получить элемент, выбранный в listview
- 27. Nullpointerexception в диалоговом окне?
- 28. setOnItemClickListener в диалоговом окне не работает
- 29. Listview Search не работает в диалоговом окне всплывающих окон
- 30. Общедоступный элемент Android в диалоговом окне actvitiy
попытайтесь объявить listview выше onCreate(). – Shrikant
объявить listview как член класса и получить строку 'String s = (String) adapterView.getItemAtPosition (i)' – Raghunandan
изменить 'ListView listView = (ListView) findViewById (R.id.listView);' to 'final ListView listView = (ListView) findViewById (R.id.listView); '.Это потому, что вы обращаетесь к локальной переменной внутри анонимного прослушивателя и получаете доступ к переменной внутри анонимного определения, вы должны сделать ее «final» – thegiga