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

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

Войти
Регистрация
Восстановить пароль
 
Василевский
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 102
#1

Public void onClick(View view) - Android

18.11.2015, 19:35. Просмотров 372. Ответов 4
Метки нет (Все метки)

Не работает public void onClick(View view)
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
64
65
66
67
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 
    LinearLayout linearLayout;
    ArrayList<String> list;
    Button butActive;
    LayoutInflater layoutInflater;
    String editTitle = "default";
    String editBigTExt = "default";
    public static final String constSp = "spText";//constant
    public static final String constKey = "keyText";//constant
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        linearLayout = (LinearLayout) findViewById(R.id.container);
        butActive = (Button) findViewById(R.id.butAdd);
        list = new ArrayList<>();
 
        layoutInflater = LayoutInflater.from(MainActivity.this);
 
        butActive.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, TwoActivity.class);
                startActivityForResult(intent, 1);
 
            }
        });
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            editTitle = data.getStringExtra("keyEditTitle");
            list.add(editTitle.toString());
            SharedPreferences sharedPreferences = getSharedPreferences(constSp, MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
 
            for (int i = 0; i < list.size(); i++) {
                if (list.size() - 1 == i) {
                    Log.d("MYTAG", list.get(i).toString());
                    String name = list.get(i);
                    View view1 = layoutInflater.inflate(R.layout.items, null);
                    TextView textView = (TextView) view1.findViewById(R.id.textName);
                    textView.setTag(i);
                    textView.setText(name);
                    linearLayout.addView(view1);
                }
            }
        } else {
            Log.d("MYTAG", "OnActRes = default value");
        }
    }
 
    @Override
    public void onClick(View view) {
        Log.d("MYTAG", "onClick");
        int index = (int) view.getTag();
        String object = list.get(index);
        Toast.makeText(this, object, Toast.LENGTH_SHORT).show();
 
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2015, 19:35     Public void onClick(View view)
Посмотрите здесь:

Gallery and custom view Android
Android XML vs View
Отрисовка View Android
Android Работа с классом View
Отображение собственного View Android
Рисование в элементе view Android
Android Тип view
Скопировать view Android
Движение View Android
View во фрагментах Android
Android Сериализация View
Android Красивые View

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2011 / 1753 / 545
Регистрация: 12.05.2014
Сообщений: 6,207
Завершенные тесты: 1
18.11.2015, 19:39     Public void onClick(View view) #2
так у тебя на кнопке уже есть обработчик нажатий (строки 24-31)
а что бы заработал метод который в самом низу листинга то надо бы на соответствуюющий элемент назначить слушатель, типа так shtotoView.setOnClickListener(this);
Василевский
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 102
18.11.2015, 20:06  [ТС]     Public void onClick(View view) #3
Спасибо.
назначил слушателя
Java
1
linearLayout.setOnClickListener(this);
Но теперь пишет FATAL EXCEPTION: main
java.lang.NullPointerException
на
Java
1
int index = (int) v.getTag();
Паблито
2011 / 1753 / 545
Регистрация: 12.05.2014
Сообщений: 6,207
Завершенные тесты: 1
18.11.2015, 20:08     Public void onClick(View view) #4
потому что это насилие!
getTag() возвращает Object (или null)

подозреваю там надо использовать v.getId()
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
19.11.2015, 07:38     Public void onClick(View view) #5
я бы убрал код 60-66, и делал так, как в 24-31.
implements View.OnClickListener - тогда тоже можно убрать.

и тогда у Вас будет
linearLayout.setOnClickListener(new View.OnClickListener() {...
и дальше по аналогии.

...и к слову вот это
new View.OnClickListener() {...
тоже можно вынести для красоты-правильности.
Yandex
Объявления
19.11.2015, 07:38     Public void onClick(View view)
Ответ Создать тему
Опции темы

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