Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Один объект класса в onCreate и onClick

Здравствуйте!
Описал класс, реально ли, чтобы один метод класса выполнялся в onCreate, а другой в onClick? Т.к. сейчас создавая объект у меня не выходит обратиться к нему из двух мест.

Добавлено через 2 часа 33 минуты
опишу подробнее: экземпляр класса создается в методе onCreate, там же используется один из его методов, но другой метод нужно запустить после нажатия кнопки - это возможно?
Java(TM) 2 Platform Standard Edition 5.0
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
public class MainActivity extends ActionBarActivity implements OnClickListener{
    
    TextView txtView;
    EditText et1;
    Button btn1;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        txtView = (TextView)findViewById(R.id.txtView);
        et1 = (EditText)findViewById(R.id.et1);
        btn1 = (Button)findViewById(R.id.btn1);
        
        btn1.setOnClickListener(this);
        
        Unit unit = new Unit();
        unit.numberGenerate();
 
    }
 
    @Override
    public void onClick(View v) {
        //Unit unit1 = new Unit();
        //unit1.numberGenerate();
        unit.result();
 
    }
    public class Unit {
        int x;
        int y;
        
        public void numberGenerate () {
            y = (int)(Math.random()*10 *1);
            txtView.setText("Загадано число от 1 до 10" + '\n' + "Введите ваше число:");
        }
        public void result () {
            do {
                x = Integer.valueOf(et1.getText().toString());
                if (x == y)
                    txtView.setText("Вы угадали");
                else 
                    if (x > 0 && x<=10)
                        txtView.setText("Вы не угадали");
                    if (x <y)
                        txtView.setText("Мое число меньше!");
                    else 
                        txtView.setText("Мое число больше!");
                //else
                    //txtView.setText("Ваше число не попадает в диапазон");
                    
            } while (x != y);
            
        }
    }
}
Ответ: Оказалось - элементарно!)
Спасибо за совет, буду знать теперь.
Вопрос: Как в Android положить один объект (button) на другой (button)?

Скажите, как можно положить один объект на другой, так что бы они оба были кликабельными? У менять есть две кнопки примыкающие друг к другу, а третью разместить нужно между ними. Это вообще возможно?
Ответ: Всем спасибо.
sskdroid, отдельное спасибо за пример разметки.
Вопрос: Android Studio, импорт не видит в проекте один из классов?

Скачал библиотеку в виде сорскода, подключил к проекту все хорошо импортнулось, но один из классов с каким-то сереньким значком и его не видит когда к нему обращаешься, на скрине суть проблемы:




подскажите пожалуйста кто знает?
Ответ: package com.dis.bgps.bubbleEngine;
Вопрос: Как получить доступ к методам объекта класса наследуемого от Activity, когда он выводится во вкладку

В главном Активити создаются вкладки на котовые выводятся другие активити.

Java(TM) 2 Platform Standard Edition 5.0
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
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
        LocalActivityManager localActivityManager = new LocalActivityManager(this, false);
        localActivityManager.dispatchCreate(savedInstanceState);
        tabHost.setup(localActivityManager);
        tabHost.getTabWidget().setDividerDrawable(R.drawable.divider2);
        TabHost.TabSpec tabSpec;
        
        View v1 = createTabView(tabHost.getContext(), "Заявки");             /// Первая вкладка
        tabSpec = tabHost.newTabSpec("tag1");
        tabSpec.setIndicator(v1);
        Intent intent1=new Intent(this, Orders.class);
        tabSpec.setContent(intent1);
        tabHost.addTab(tabSpec);
 
 
        tabSpec = tabHost.newTabSpec("tag2");                                       ///Вторая вкладка
        View v2 = createTabView(tabHost.getContext(), "Маршрут");
        tabSpec.setIndicator(v2);
        tabSpec.setContent(new Intent(this, Route.class));
        tabHost.addTab(tabSpec);
в Orders.class объявлен метод "refreshFromDataBase()", я хочу вызывать этот метод из меню, меню сделано, в обработчик нажатия пункта меню я попадаю, а как в обработчике запустить метод не знаю. Как получить доступ к объекту Orders.class который находится на первой вкладке, чтобы вызвать метод "refreshFromDataBase()"
Ответ: heid, ещё раз. Надо использовать фрагменты.
Вопрос: Один экземпляр класса для всех активити

Как это можно реализовать?Если класс не поддается сериализации.
Ответ: yotsi, ИМХО, лучше сервис для данной задачи
Вопрос: Сразу после нажатия Power вызывается OnCreate. Почему?

Здравствуйте. Пишу вообще под Mono.Android, но в той ветке глухо, да и код очень похож на Java, так что это я думаю не проблемма, да и вопрос не в этом. В общем: основное Activity наследуется от TabActivity (знаю, что устарело, но так надо..) В OnCreate, ничего особенного нет, создаются вкладки, загружается ранее сохраненная информация:
Кликните здесь для просмотра всего текста
C#
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
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            this.RequestWindowFeature (WindowFeatures.NoTitle); //Создать вьюху без заголовка
            mSettings =  GetSharedPreferences(APP_PREFERENCES, FileCreationMode.Private);
 
            Load_SharedPreferences();
 
 
            SetContentView(TabHost);
            CreateTab(typeof(Connect_Activity), "Подключение",     GetString(Resource.String.connection));
            CreateTab(typeof(Main_Input_data_Activity), "Главная", GetString(Resource.String.main));
            CreateTab(typeof(Settings_Activity), "Настройки",      GetString(Resource.String.settings) );
            if( LayoutInflater.Inflate(Resource.Layout.Graf_act, null).FindViewById<ImageButton>(Resource.Id.MenuButton)!=null) //если нет кнопки меню у графиков, т.е. запустили на планшете
                CreateTab(typeof(Grafics_Activity), "Графики", GetString(Resource.String.graphics));
            else
                CreateTab(typeof(Grafics_Activity_large), "Графики", GetString(Resource.String.graphics)); //постоянно отображаемая панель меню графиков
 
            Change_TabHost_Text_size ();
 
 
            if(current_tag!="")
            {
                TabHost.SetCurrentTabByTag (current_tag); //выделить ту вкладку, которая была сохранена перед выключением
                current_tag="";
            }
 
            //---произвести загрузку серриализированного класса singletone с введенными пользователем данными
            try
            {
                Serializer.LoadFromBinnary<All_user_entered_info>(System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), File_name_user_entered_info));
            }
            catch{}
 
            //экземпляр класса PowerManager.WakeLock  чтоб не гас экран 
            var _powerManager = (PowerManager) GetSystemService(PowerService);
            sWakeLock = _powerManager.NewWakeLock(WakeLockFlags.ScreenBright, "MyTag");
        }
        
        
        
        private void CreateTab(Type activityType, string tag, string label)
        {
            var intent = new Intent(this, activityType);
            intent.AddFlags(ActivityFlags.NewTask);
            var spec = TabHost.NewTabSpec(tag);
            spec.SetIndicator (label); //, drawableIcon);
            spec.SetContent(intent);
            TabHost.AddTab(spec);
        }

В OnPause и OnDestroy, тоже ничего криминального не происходит:
Кликните здесь для просмотра всего текста
C#
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
protected override void OnPause ()
        {
            base.OnPause ();
 
            // Запоминаем данные
            ISharedPreferencesEditor editor = mSettings.Edit();
            editor.PutString(APP_PREFERENCES_LANG, current_lang);
            if(!String.IsNullOrWhiteSpace( Main_Input_data_Activity.Current_Fragment))
                editor.PutString (APP_PREFERENCES_CURRENT_FRAGMENT, Main_Input_data_Activity.Current_Fragment);
            editor.PutString(APP_PREFERENCES_THEME, current_theme);
            if(current_tag!="")
                editor.PutString(APP_PREFERENCES_SELECT_TAB, TabHost.CurrentTabTag);
            editor.Apply ();
 
            //произвести серриализацию класса singletone с введенными пользовательскими данными в файл
            Serializer.SaveToBinnary<All_user_entered_info> (System.IO.Path.Combine (System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal), File_name_user_entered_info), All_user_entered_info.Instance);
        }
 
//выключение BT при завершении приложения
        protected override void OnDestroy ()
        {
            base.OnDestroy ();
 
            if ((My_Bluetooth.mBluetoothAdapter.Enable ()) & (Main_tabs_Activity.restart_flag == false)) //если БТ включен и это выключение, а не перезапуск для смены темы, то
                My_Bluetooth.mBluetoothAdapter.Disable ();
            
            Main_tabs_Activity.restart_flag = false; //отчистить флаг
        }

И всё отлично работает, но как только я нажимаю хардовую кнопку "Power" на тел. (в каком бы Actyvity или фрагменте я не находился) гаснет экран и буквально через пол секунды сам вызывается OnCreate этой, главной активити! Естественно он опять пытается создать табы. И входя в конструктор первой активности-вкладки (класс Connect_Activity) в её SetContentView (Resource.Layout.Connect_act); получаем исключение Android.Content.Res.Resources+NotFoundException. И приложение сыпется... Почему вообще так происходит? Из-за чего вообще может вызыватся OnCreate при погасании экрана?!
Ответ:
в коде создается wakelock
он где в onpause/stop срабатывает? wakeLock.acquire(); например
Он включаеться потом в одном фрагменте, а выключается в другом. Но да это не важно, я думаю. Т.к. я для проверки создал новый проект, в котором 3-класса:
MainActyvity
Кликните здесь для просмотра всего текста
C#
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
[Activity (Label = "Test_TabApp", MainLauncher = true, Icon = "@mipmap/icon",ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape)]
    public class MainActivity : TabActivity
    {
        
        protected override void OnCreate (Bundle savedInstanceState)
        {
            base.OnCreate (savedInstanceState);
            this.RequestWindowFeature (WindowFeatures.NoTitle); //Создать вьюху без заголовка
 
            SetContentView (TabHost);
            CreateTab(typeof(Connect_Activity), "Подключение",     "Подключение");
            CreateTab(typeof(Main_Input_data_Activity), "Главная", "Главная");
        }
 
 
        private void CreateTab(Type activityType, string tag, string label)  //, int drawableId)
        {
            var intent = new Intent(this, activityType);
            intent.AddFlags(ActivityFlags.NewTask);
            var spec = TabHost.NewTabSpec(tag);
            spec.SetIndicator(label); //, drawableIcon);
            spec.SetContent(intent);
            TabHost.AddTab(spec);
        }
 
 
    }

Connect_Activity
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
[Activity]
    public class Connect_Activity : Activity
    {
        
 
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Connect_act);
        }
            
    }

и Main_Input_data_Activity
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
[Activity]  
    public class Main_Input_data_Activity  : Activity
    {
 
        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);
            SetContentView (Resource.Layout.Input_dat_act);
 
        }
 
    }

В которых нет ничего! И всё равно наблюдаю такой-же эффект! Нажимая power в строке
C#
1
SetContentView (Resource.Layout.Connect_act);
Сразу вижу исключение Android.Content.Res.Resources+NotFoundException
Кликните здесь для просмотра всего текста
Android.Content.Res.Resources+NotFoundException: Resource ID #0x7f030000
at android.content.res.Resources$NotFoundException: Resource ID #0x7f030000
at at android.content.res.Resources.getValue(Resources.java:1163)
at at android.content.res.Resources.loadXmlResourceParser(Resources.java:2349)
at at android.content.res.Resources.getLayout(Resources.java:979)
at at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
at at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:315)
at at android.app.Activity.setContentView(Activity.java:1973)
at at md5c62c62cec7e539e725691719b812cf8e.Connect_Activity.n_onCreate(Native Method)
at at md5c62c62cec7e539e725691719b812cf8e.Connect_Activity.onCreate(Connect_Activity.java:28)
at at android.app.Activity.performCreate(Activity.java:5275)
at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)
at at android.app.ActivityThread.startActivityNow(ActivityThread.java:2040)
at at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
at at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
at at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
at at android.widget.TabHost.setCurrentTab(TabHost.java:413)
at at android.widget.TabHost.addTab(TabHost.java:240)
at at md5c62c62cec7e539e725691719b812cf8e.MainActivity.n_onCreate(Native Method)
at at md5c62c62cec7e539e725691719b812cf8e.MainActivity.onCreate(MainActivity.java:28)
at at android.app.Activity.performCreate(Activity.java:5275)
at at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2166)
at at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2252)
at at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3757)
at at android.app.ActivityThread.access$900(ActivityThread.java:139)
at at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
at at android.os.Handler.dispatchMessage(Handler.java:102)
at at android.os.Looper.loop(Looper.java:136)
at at android.app.ActivityThread.main(ActivityThread.java:5103)
at at java.lang.reflect.Method.invokeNative(Native Method)
at at java.lang.reflect.Method.invoke(Method.java:515)
at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at at dalvik.system.NativeStart.main(Native Method)


Добавлено через 8 минут
Один в один, практически, как в этом примере:

Добавлено через 1 час 8 минут
Нашел в чем беда! Во всём виновата строка
C#
1
ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape
Убираю её, всё нормально. Тушу экран, возобновляю, всё остается на своих местах, OnCreate не вызывается. Теберь буду думать как это победить, т.к. мне надо, чтобы приложение было только в горизонтальном виде. Если оставляю только папку layout-land, то ругается на SetContentView (Resource.Layout.Main); не видет ресурсы...

Добавлено через 39 минут
Так. Ну вроде разобрался!... Значит получается так: когда программа запущена в портретной ориентации, то нажатие power не вызывает OnCreate и даже все данные остаются на месте. А когда в горизонтальном виде нажимаешь, то OnCreate вызывается и ищет ресурсы в папке layout, а их там у меня нет, они все в папке layout-land - отсюда и исключения. Сейчас перенес все ресурсы из layout-land в layout, из layout-large-land в layout-large и т.д. и оставил
C#
1
ScreenOrientation= Android.Content.PM.ScreenOrientation.Landscape
И всё работает нормально. Вылетать перестало. Теперь осталось придумать как вообще избежать этого перезапуска и почему он возникает только при горизонтальном расположении?! (а то все подключенные по BT устройства отваливаются и их по новой надо подключать, а разруливать это труднее, чем избежать повторного OnCreate, покрайне мери пока мне так кажеться...)
Вопрос: Перегрузка OnCreate

Гуру ООП, помогите исправить "конфликт"

Написал свой класс-предок для активити(MyActivity), где в onCreate добавил несколько дополнительных полей для работы с XML и с обработкой ошибки. От него наследую мои "рабочие" активити.

MyActivity наследуется от FragmentActivity
Java
1
2
3
4
    public void onCreate(Bundle savedInstanceState, String err_id, int ContextView_id) {
       super.onCreate(savedInstanceState);
       // дальше мои "доработки"
    }
В рабочем активити делаю так:
Java
1
2
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState, "Error_3924829", R.layout.frm_main);
(так удобнее)

В результате все работает, но в Студии строка public void onCreate(Bundle savedInstanceState) { светится ошибкой!
Среди предложений можно перед public void onCreate(Bundle savedInstanceState) { поставить @SuppressLint("MissingSuperCall")
тогда красный гаснет, но это... подозрительно что-ли... Не знаю как оно поведет себя в разных версиях SDK.

Кто знает, можно ли убрать ошибку еще на уровне предка?
Что означает/делает @SuppressLint("MissingSuperCall")?
Ответ:

Не по теме:

Сообщение от OlegJV
я тут полночи бился
аналогично! я сегодня поисправлял все конфликты которые БЕСИЛИ уже несколько месяцев в нескольких проектах и добавил еще несколько функций в собственную ORM


попробую еще раз! есть КУЧА активити, в которых используется МОЙ предок для активити. У всех много кода в onCreate. Надо ВСЕХ переписать. Благодаря @Deprecated в предке у onCreate я СРАЗУ вижу какое активити надо переписать/перебрать (стоит его открыть) - студия явно показывает ошибку в списке методов и в коде!
Вопрос: Не передаются данные между onCreate и onResume

Значение переменной изменяется после загрузки. НО! В onCreate есть TextView который использует это значение. Но судя по размеру текста, оно не изменилось. Помогите пожалуйста!
Java(TM) 2 Platform Standard Edition 5.0
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
int dendroidMoney = 500;
    int dendroidTextSize = 70;
    SharedPreferences sPref;
    private String SAVE = "777";
 
    @Override
    protected void onResume()
    {
        super.onResume();
        sPref = getSharedPreferences("dendroidOrientation", MODE_PRIVATE);
        String loadedConf = sPref.getString(SAVE, "");
        int portConf = Integer.parseInt(loadedConf);
        sPref = getSharedPreferences("dendroidFontSize", MODE_PRIVATE);
        String loadedFontSize = sPref.getString(SAVE, "");
        int portFontSize = Integer.parseInt(loadedFontSize);
        dendroidTextSize = portFontSize;
        /*if (portConf == 1) {
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
         }
         else {
         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         }*/
    }
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
 
        super.onCreate(savedInstanceState);
...
TextView ddTitleTextView = new TextView(this);
        ddTitleTextView.setText("The Slot Machine");
        ddTitleTextView.setLayoutParams(dd_wrap_content);
        ddTitleTextView.setTextColor(0xffFFFFFF);
        ddTitleTextView.setTextSize(dendroidTextSize);
Ответ: в onCreate вообще не должно быть ничего кроме findViewById(ля-ля)
остальной код надо выносить в onResume и прочие методы
слушай что тебе сказал YuraAAA, если непонятно что он имел ввиду - перечитай еще раз, он дело говорит
Вопрос: Получить параметры кнопки внутри OnClick

доброго всем
помогите новичку

имеется layout, на котором динамически создается неизвестное количество кнопок.
Каждая кнопка помимо стандартных полей должна иметь некий id
по нажатию каждой из кнопок должен вызываться метод, в метод должен передаваться этот id

создан подкласс
Java
1
2
3
4
5
public class myButton extends Button {
        int myID;
        myButton(Context context){
                super(context);
                myID = 0;       }   }
в цикле создаются его экземпляры, каждому из которых методом setOnClickListener присваивается один и тот же обработчик нажатия onclickMyButton
Java
1
2
3
4
 View.OnClickListener onclickMyButton = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        ......
Как внутри обработчика получить myID?

Спасибо
Ответ: более того, я в этом уверен
по http принимается некий массив с данными, на основании которого должно возникнуть несколько кнопок (по количеству элементов массива). Все кнопки должны делать одно и то же, но с разными элементами массива.
Вопрос: Не получается открыть диалоговое окно, созданное в отдельном классе

Всем привет!
Учусь программировать под андроид, еще почти ничего не понимаю.
Пробую урок .
Пытаюсь вызвать диалоговое окно по нажатию кнопки "домой".
Закомментированный диалог "покормите кота" успешно работает.
А вот диалог, созданный в классе не открывается.
Просто затемняется экран и всё.
Из примера урока я попытался убрать всё "лишнее", может чего нужное зацепил?
Заметил, что в DialogScreen.java

Что я делаю не так?

Главное активити TabooActivity.java:
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
package com.example.doc.taboo;
 
// много import
 
public class TabooActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    @Override
    public void onBackPressed() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this, DialogScreen.IDD_SETTINGS);
        AlertDialog dialog = builder.create();
        dialog.show();
        
        /*
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Важное сообщение!")
                .setMessage("Покормите кота!")
                .setCancelable(false)
                .setNegativeButton("ОК, иду на кухню",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        });
        AlertDialog alert = builder.create();
        alert.show();
        */
    }
}
DialogScreen.java:
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
package com.example.doc.taboo;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.View;
 
public class DialogScreen {
 
    public static final int IDD_ABOUT = 1; // Идентификаторы диалоговых окон
    public static final int IDD_SETTINGS = 2;
    public static final int IDD_RATE = 3;
 
    public static AlertDialog getDialog(final Activity TabooActivity, int ID) {
        AlertDialog.Builder builder = new AlertDialog.Builder(TabooActivity);
 
        switch(ID) {
            case IDD_ABOUT:
                return builder.create();
            case IDD_RATE:
                return builder.create();
            case IDD_SETTINGS: // Диалог настроек
                View view = TabooActivity.getLayoutInflater().inflate(R.layout.settings, null); // Получаем layout по его ID
                builder.setView(view);
                builder.setTitle(R.string.dialog_settings_title);
                builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { // Кнопка ОК
                    public void onClick(DialogInterface dialog, int whichButton) {
                       // TabooActivity.doSaveSettings(); // Переход в сохранение настроек MainActivity
                        dialog.dismiss();
                    }
                });
                builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { // Кнопка Отмена
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                return builder.create();
            default:
                return null;
        }
    }
}
settings.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
 
 
<TextView
    android:id="@+id/textVol"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="20dp"
    android:text="@string/dialog_settings_vol"
    android:textAppearance="?android:attr/textAppearanceMedium" />
 
<TextView
    android:id="@+id/textSense"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/dialog_settings_sense"
    android:textAppearance="?android:attr/textAppearanceMedium" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"
        android:id="@+id/ok"
        android:layout_below="@+id/textVol"
        android:layout_alignRight="@+id/textVol"
        android:layout_alignEnd="@+id/textVol"
        android:layout_marginTop="50dp" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="cancel"
        android:id="@+id/cancel"
        android:layout_alignTop="@+id/ok"
        android:layout_toRightOf="@+id/ok"
        android:layout_toEndOf="@+id/ok" />
 
 
</RelativeLayout>
Ответ: конечно never used. методы не вызываются сами. только переопределенные. а твой класс не наследует .
объяви в классе метод, передавай активити как Context для создания диалога, вызывай этот метод. все

Не по теме:

"покормите кота"
опять климов...