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

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

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

Как определить нажатие на actionLayout ? - Программирование Android

15.01.2014, 16:06. Просмотров 974. Ответов 4
Метки нет (Все метки)

Здравствуйте!
К сути дела.
Вот мой /menu/main.xml :
XML
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
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:sabd="http://schemas.android.com/apk/res-auto" >
 
     <item
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:icon="@android:drawable/ic_menu_add"
        sabd:showAsAction="always" />
    <item
        android:id="@+id/action_item_1"
        android:title="sdfds"
        android:icon="@android:drawable/ic_menu_delete"
        sabd:actionLayout="@layout/music"
        sabd:showAsAction="ifRoom" />
    
    <item
        android:id="@+id/action_item_2"
        android:title="aaaaaaaaa"
        sabd:showAsAction="never" />
    <item
        android:id="@+id/action_item_3"
        android:title="bbbbbbbb"
        sabd:showAsAction="never" />
 
</menu>
Для action_item_1 я задал sabd:actionLayout="@layout/music"
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <ImageButton 
    style="@style/Widget.AppCompat.ActionButton"
    android:id="@+id/gg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/selectable_background_bluestyle"
    android:src="@drawable/ic_action_undo"/>
    
 
</LinearLayout>
Проблема в том что я не могу определить нажатие на кнопку.
Когда задаю setOnClickListener для кнопки приложение вылетает(
Код MainActivity :
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
package ua.example.stylingwithsupport;
 
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v7.app.ActionBar.TabListener;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;
 
public class MainActivity extends ActionBarActivity implements OnClickListener {
 
    ActionBar ab;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ab = getSupportActionBar();
        
        ImageButton ib=(ImageButton) findViewById(R.id.gg);
        ib.setOnClickListener(this);
 
        
       
    }
 
    @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;
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        
        if(item.getItemId()==R.id.action_item_1){
            Log.d("Testing====>>>", "All okay");
            makeToast("Saving...");
        }
        return true;
 
    
    }
    public void makeToast(String message) {
                // with jam obviously
                Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
            }
 
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v.getId()==R.id.gg){
            makeToast("Saving...");
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2014, 16:06     Как определить нажатие на actionLayout ?
Посмотрите здесь:

Как определить, какой промежуток времени длилось нажатие? - Программирование Android
Можно ли как-нибудь узнать какой промежуток времени длилось нажатие?

Как обработать нажатие ImageView - Программирование Android
Создаю программу на Андроиде. И сразу столкнулся с проблемой. Почему то не получается... Создаю три объекта ImageView, и надо при нажатии...

Как обработать нажатие на ImageView? Eclipse(android) - Программирование Android
Ребят, не пойму в чем ошибка, как обработать нажатие на картинку? public class MainActivity extends ActionBarActivity implements...

Как считать нажатие на одно из полей в ListView? - Программирование Android
Добрый день, как считать нажатие на одно из полей в listview? вставляю такой код в onCreat, но не выводит log. Что не так? ...

Как обработать нажатие на изображение в элементе listView? - Программирование Android
Как все знают, listView делится на множество элементов, нажатия на них можно обработать... Но во многих listView помимо тескат часто...

Как сделать паузу — запретить нажатие кнопок на 5 секунд? - Программирование Android
Принцип игры - вопросы на время. По кнопке &quot;Старт&quot; запускается таймер обратного отсчета, кнопка превращается в &quot;Далее&quot; и, пока работает...

Как поставить обработчик на нажатие на изображение в пункте spinner? - Программирование Android
В моей разметке для spinner есть imageView, можно ли как-то обработать нажатие на него, и если можно, то как?

Как найти угол при нажатие на экран в android studio? - Программирование Android
Конечно можно найти синус или косинус, но можно получить угол в радианах сразу?

Как передать через intent нажатие кнопки в другом активити - Программирование Android
В первом активити у нас есть две кнопки 1 и 2. Во втором активити ещё две кнопки 3 и 4. Вопрос в том, как сделать так, чтоб при нажатии...

Как обработать нажатие кнопки "Назад", чтобы открывался рекламный баннер? - Программирование Android
Требуется помощь. Начал осваивать это все недавно. Расскажу суть идеи: создав проект в Android Studio, был выбран активити &quot;Google AdMob...

Как лучше "повесить" обработчик событий на пункты списка, а потом отлавливать нажатие на них - Программирование Android
Здравствуйте! Ниже приведенный код, получает json строку, затем достает от туда массив и данные из каждой строчки массива, распихивает в...

Нажатие на Frame - Программирование Android
Здравствуйте. Появилась проблема. У меня есть массив из идентификаторов Frame'ов int id ={R.id.kick, R.id.snare, R.id.crash, R.id.lowtom,...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
verylazy
Заблокирован
15.01.2014, 16:11     Как определить нажатие на actionLayout ? #2
Java
1
ib.setOnClickListener(this);
эту строку надо удалить вообще
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
15.01.2014, 16:14  [ТС]     Как определить нажатие на actionLayout ? #3
Цитата Сообщение от verylazy Посмотреть сообщение
Java
1
ib.setOnClickListener(this);
эту строку надо удалить вообще
Убрал но тост у меня не показывается.
verylazy
Заблокирован
15.01.2014, 16:22     Как определить нажатие на actionLayout ? #4
а если для теста в onClick убрать проверку id ?
может там по условию не проходит
olorin3000
2 / 2 / 1
Регистрация: 27.09.2012
Сообщений: 48
15.01.2014, 18:07  [ТС]     Как определить нажатие на actionLayout ? #5
Цитата Сообщение от verylazy Посмотреть сообщение
а если для теста в onClick убрать проверку id ?
может там по условию не проходит
Не показывается.
Ну так в таком случае он и не должен показыватся ведь метод OnClickListener не опредилается хотя б каким -то View.

Здесь он работает ну если я меняю id другой иконки:
Java
1
2
3
4
5
6
7
8
9
10
11
@Override
    public boolean onOptionsItemSelected(MenuItem item){
        
        if(item.getItemId()==R.id.action_item_2){
            Log.d("Testing====>>>", "All okay");
            makeToast("Saving...");
        }
        return true;
 
    
    }
Добавлено через 1 час 33 минуты
Сделал другим способом.
Убрал кнопку с /menu/main.xml
Просто layout даной кнопки задал для ActionBar как customView и заработало.
Yandex
Объявления
15.01.2014, 18:07     Как определить нажатие на actionLayout ?
Ответ Создать тему
Опции темы

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