Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
#1

События ListView - Программирование Android

05.03.2014, 01:02. Просмотров 788. Ответов 6
Метки нет (Все метки)

Здравствуйте! Вот программа;
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.example.freedom;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
 
public class Freedom extends Activity {
    
    private String jsonString = "{\"employee\":[" +
            "{\"emp_name\":\"Антон\"}," +
            "{\"emp_name\":\"Анна\"},]}";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_freedom);
        initList();
        ListView listView = (ListView) findViewById(R.id.listView1);
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, employeeList, android.R.layout.simple_list_item_1, new String[] {"employees"}, new int[] {android.R.id.text1});
        listView.setAdapter(simpleAdapter);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.freedom, menu);
        return true;
    }
 
    List<Map<String,String>> employeeList = new ArrayList<Map<String,String>>();
    private void initList(){
        try{
               JSONObject jsonResponse = new JSONObject(jsonString);
               JSONArray jsonMainNode = jsonResponse.optJSONArray("employee");
               
              for(int i = 0; i<jsonMainNode.length();i++){
               JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
               String name = jsonChildNode.optString("emp_name");
               String outPut = name;
               employeeList.add(createEmployee("employees", outPut));
              }
             }
              catch(JSONException e){
               Toast.makeText(getApplicationContext(), "Error"+e.toString(), Toast.LENGTH_SHORT).show();
              }
             }
              
             private HashMap<String, String>createEmployee(String name,String number){
              HashMap<String, String> employeeNameNo = new HashMap<String, String>();
              employeeNameNo.put(name, number);
              return employeeNameNo;
        }
}
Она выводит два имя в ListVier. Как сделать, чтобы при нажатие на имя программа выводила информацию?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 01:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос События ListView (Программирование Android):

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Переход из Listview в Listview - Программирование Android
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим...

6
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
05.03.2014, 09:58 #2
http://vlad8.com/tech/android-sqlite-database/
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
05.03.2014, 10:04 #3
Цитата Сообщение от Freemanasus Посмотреть сообщение
Как сделать, чтобы при нажатие на имя программа выводила информацию?
Какую информацию ? О нажатом пункте списка ?
Добавьте в метод onCreate этот код:
Java
1
2
3
4
5
6
7
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                TextView tv = (TextView) view.findViewById(android.R.id.text1);
                Toast.makeText(getApplicationContext(), "Выбран пункт " + tv.getText(), Toast.LENGTH_SHORT).show();
            }
        });
0
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
05.03.2014, 10:09  [ТС] #4
angryrobot, которую я пропишу в коде
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
05.03.2014, 10:46 #5
Цитата Сообщение от Freemanasus Посмотреть сообщение
которую я пропишу в коде
Суть вопроса крайне туманна, напишите пожалуйста подробнее что вы собираетесь прописать.
0
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
05.03.2014, 11:16  [ТС] #6
angryrobot, есть список с именами. Я нажимаю на какое-нибудь имя и мне выводится информация которую я уже зарание ввел в коде программы, например дата рождения. И на каждом имени разная информация при нажатии.

Добавлено через 8 минут
И информация должна появляться как бы в другой форме.
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
05.03.2014, 11:41 #7
Цитата Сообщение от Freemanasus Посмотреть сообщение
Я нажимаю на какое-нибудь имя и мне выводится информация которую я уже зарание ввел в коде программы, например дата рождения. И на каждом имени разная информация при нажатии.
Ну например вот так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Freedom extends Activity {
    private final String NAME_KEY = "employees";
    private final String DATE_KEY = "birth";
    private String jsonString = "{\"employee\":[" +
            "{\"emp_name\":\"Антон\", \"date_of_birth\":\"10.10.1910\"}," +
            "{\"emp_name\":\"Анна\",\"date_of_birth\":\"01.01.2000\"}]}";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_freedom);
        initList();
        ListView listView = (ListView) findViewById(R.id.listView1);
        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), "День рождения: " + employeeList.get(position).get(DATE_KEY), Toast.LENGTH_SHORT).show();
            }
        });
        SimpleAdapter simpleAdapter = new SimpleAdapter(this, employeeList, android.R.layout.simple_list_item_1, new String[] {NAME_KEY}, new int[] {android.R.id.text1});
        listView.setAdapter(simpleAdapter);
    }
 
 
    List<Map<String,String>> employeeList = new ArrayList<Map<String,String>>();
    private void initList(){
        try{
               JSONObject jsonResponse = new JSONObject(jsonString);
               JSONArray jsonMainNode = jsonResponse.optJSONArray("employee");
               
              for(int i = 0; i<jsonMainNode.length();i++){
               JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
               String name = jsonChildNode.optString("emp_name");
               String date = jsonChildNode.optString("date_of_birth");
               employeeList.add(createEmployee(name, date));
              }
             }
              catch(JSONException e){
               Toast.makeText(getApplicationContext(), "Error"+e.toString(), Toast.LENGTH_SHORT).show();
              }
             }
              
             private HashMap<String, String>createEmployee(String name, String date){
              HashMap<String, String> employeeNameNo = new HashMap<String, String>();
              employeeNameNo.put(NAME_KEY, name);
              employeeNameNo.put(DATE_KEY, date);
              return employeeNameNo;
        }
 
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 11:41
Привет! Вот еще темы с ответами:

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

События - Программирование Android
Всем доброго времени суток! Прошу прощения за такой странный вопрос, но я недавно начал учить андроид по книге с готовым кодом,...

Listview - Программирование Android
Добрый день, В структуре ListView есть два элемента,которые он показывает Item и SubItem. В Item вставить значение не проблема,всё...

ListView - Программирование Android
Как в ListView задавать значения Sub Item?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
05.03.2014, 11:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru