Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Button setPressed работает не так как задумано

Добрый день! подскажите почему если я делаю две кнопки.

Java
1
2
 Loader1 = (Button) findViewById(R.id.bt_Loader1);
Loader2 = (Button) findViewById(R.id.bt_Loader2);
далее

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
Loader2.setOnClickListener(new View.OnClickListener() {
 
                                       @Override
                                       public void onClick(View arg0) {
 
                    Loader1.setPressed(true);
                    Loader1.setClickable(false);
 
//
 
 
            }
                                   });
 
 
Loader1.setOnClickListener(new View.OnClickListener() {
 
                                       @Override
                                       public void onClick(View arg0) {
 
                    Loader1.setPressed(true);
                    Loader1.setClickable(false);
 
//
 
 
            }
                                   });
При нажатии на кнопку 1. Она просто блокируется для нажатия. Но когда нажимаю на кнопку 2 - кнопка 1 блокируется и светится оранжевым(является нажатой).
Почему так? код одинаковый, а получается по разному?
и как сделать чтобы при нажатии на кнопку 1 был результат как у меня при нажатии на кнопку 2?)
Ответ:
Java
1
2
3
4
5
6
    @Override
    public void onClick(View view) {
        Button btn = (Button) view;
        btn.getBackground().setColorFilter(0xff00ff00, PorterDuff.Mode.SRC_ATOP); // просто цвет числом
        btn.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.SRC_ATOP); // или цвет из ресурсов
    }
Вопрос: API 17 как установить backround у Button?

Я переопределил стили для styleButton,который идет по умолчанию в API 22 и выше,таким образом, что в зависимости от цвета темы меняется фон кнопки...
и тут возникла проблема API 17, не понимает что я хочу от него,т.е. на кнопку не действует этот стиль.
Как задать в таком случаи фон для button,я уже переопределил для api 17 тему.
Ответ: Это кнопка с заданным быкграундом,с ней норм получилось у меня
Java
1
2
3
4
5
6
7
8
9
10
11
12
 <Button
 
                    android:id="@+id/button9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:layout_weight="20"
                    android:background="?myBackground"
                    android:onClick="onOperationClik"
                    android:stateListAnimator="@null"
                    android:text="+"
                    android:textSize="30dp" />

вот кнопка без бэкраунда
Java
1
2
3
4
5
6
7
8
9
10
 <Button
                    android:id="@+id/button15"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:layout_weight="19.43"
                    android:onClick="onNumberClic"
                    android:stateListAnimator="@null"
                    android:text="00"
                    android:textSize="30dp" />

здесь переопределяю для кнопки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
 <style name="TheThemeBlack2" parent="AppTheme">
 <item name="android:buttonStyle">@style/MyButtonStyle2</item>
 <style name="MyButtonStyle2" parent="@android:style/Widget.Button">
 
        <item name="android:background">@color/linerBg</item>
        <item name="android:layout_margin">5dp</item>
 
        <item name="android:layout_weight">1</item>
        <item name="android:stateListAnimator">@null</item>
        <item name="android:textColor">@color/white_material_numbers</item>
        <item name="android:textSize">30dp</item>
 
    </style>
Вопрос: Сделать возможной корректную обработку 2 ситуаций

Добрый день возникла проблема в обработке двух разных ситуаций при создании калькулятора с унарными и бинарными операциями.
В первой ситуации пользователь вводит что-то в поле ввода 1, затем вводит что-то в поле ввода 2, и затем жмет на любую кнопку из первого ряда, после которых происходит какое-то действие, использующее то, что ввел человек в оба поля.
Во второй ситуации пользователь вводит что-то в первое поле и затем сразу жмет какую-то кнопку из второго ряда, после которых происходит какое-то действие, использующее только то, что ввел пользователь в первое поле.
Код и скриншот интерфейса прилагаю.
Проблема в том, что сейчас для того, чтобы могли могли корректно происходить все унарные операции, требуется все равно что-то вводить во второе поле ввода. Вот как сделать так, чтобы после ввода в первое поле человек мог сразу нажать кнопку с унарной операцией? По возможности приложите пожалуйста сразу доработанный код.
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 
    final int MENU_RESET_ID = 1;
    final int MENU_QUIT_ID = 2;
 
    EditText etNum1;
    EditText etNum2;
 
    Button btnAdd;
    Button btnSub;
    Button btnMult;
    Button btnDiv;
    Button btnPow;
    Button btnFact;
    Button btnSqr;
    Button btnSqrt;
 
    TextView tvResult;
 
    String oper = "";
 
    /** Called when the activity is first created. */
 
    //@Override
    public int myFact(int num1) {
        if (num1 == 1)
            return 1;
        else return num1*myFact(--num1);
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        etNum1 = (EditText) findViewById(R.id.etNum1);
        etNum2 = (EditText) findViewById(R.id.etNum2);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnSub = (Button) findViewById(R.id.btnSub);
        btnMult = (Button) findViewById(R.id.btnMult);
        btnDiv = (Button) findViewById(R.id.btnDiv);
 
        btnPow = (Button) findViewById(R.id.btnPow);
        btnFact = (Button) findViewById(R.id.btnFact);
        btnSqr = (Button) findViewById(R.id.btnSqr);
        btnSqrt = (Button) findViewById(R.id.btnSqrt);
 
        tvResult = (TextView) findViewById(R.id.tvResult);
 
        btnAdd.setOnClickListener(this);
        btnSub.setOnClickListener(this);
        btnMult.setOnClickListener(this);
        btnDiv.setOnClickListener(this);
 
        btnPow.setOnClickListener(this);
        btnFact.setOnClickListener(this);
        btnSqr.setOnClickListener(this);
        btnSqrt.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        float num1 = 0;
        float num2 = 0;
        float result = 0;
 
        if (TextUtils.isEmpty(etNum1.getText().toString())
                || TextUtils.isEmpty(etNum2.getText().toString())) {
            return;
        }
 
        num1 = Float.parseFloat(etNum1.getText().toString());
        num2 = Float.parseFloat(etNum2.getText().toString());
 
        switch (v.getId()) {
            case R.id.btnAdd:
                oper = "+";
                result = num1 + num2;
                break;
            case R.id.btnSub:
                oper = "-";
                result = num1 - num2;
                break;
            case R.id.btnMult:
                oper = "*";
                result = num1 * num2;
                break;
            case R.id.btnDiv:
                oper = "/";
                result = num1 / num2;
                break;
            case R.id.btnPow:
                oper = "^";
                result = (float)Math.pow(num1, num2);
                break;
            case R.id.btnFact:
                oper = "!";
                result = myFact((int)num1);
                break;
            case R.id.btnSqr:
                oper = "^2";
                result = (float)Math.pow(num1,2);
                break;
            case R.id.btnSqrt:
                oper = "^(1/2)";
                result = (float)Math.pow(num1,0.5);
                break;
            default:
                break;
        }
 
        tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
        menu.add(0, MENU_RESET_ID, 0, "Reset");
        menu.add(0, MENU_QUIT_ID, 0, "Quit");
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
        switch (item.getItemId()) {
            case MENU_RESET_ID:
                etNum1.setText("");
                etNum2.setText("");
                tvResult.setText("");
                break;
            case MENU_QUIT_ID:
                finish();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
Ответ:
Кликните здесь для просмотра всего текста
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
 
    final int MENU_RESET_ID = 1;
    final int MENU_QUIT_ID = 2;
 
    EditText etNum1;
    EditText etNum2;
 
    Button btnAdd;
    Button btnSub;
    Button btnMult;
    Button btnDiv;
    Button btnPow;
    Button btnFact;
    Button btnSqr;
    Button btnSqrt;
 
    TextView tvResult;
 
    String oper = "";
 
    /**
     * Called when the activity is first created.
     */
 
    //@Override
    public int myFact(int num1) {
        if (num1 == 1)
            return 1;
        else return num1 * myFact(--num1);
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        etNum1 = (EditText) findViewById(R.id.etNum1);
        etNum2 = (EditText) findViewById(R.id.etNum2);
 
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnSub = (Button) findViewById(R.id.btnSub);
        btnMult = (Button) findViewById(R.id.btnMult);
        btnDiv = (Button) findViewById(R.id.btnDiv);
 
        btnPow = (Button) findViewById(R.id.btnPow);
        btnFact = (Button) findViewById(R.id.btnFact);
        btnSqr = (Button) findViewById(R.id.btnSqr);
        btnSqrt = (Button) findViewById(R.id.btnSqrt);
 
        tvResult = (TextView) findViewById(R.id.tvResult);
 
        btnAdd.setOnClickListener(this);
        btnSub.setOnClickListener(this);
        btnMult.setOnClickListener(this);
        btnDiv.setOnClickListener(this);
 
        btnPow.setOnClickListener(this);
        btnFact.setOnClickListener(this);
        btnSqr.setOnClickListener(this);
        btnSqrt.setOnClickListener(this);
 
    }
 
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        float num1 = 0;
        float num2 = 0;
        float result = 0;
        Boolean un = false;
 
 
        if (TextUtils.isEmpty(etNum1.getText().toString())
                && TextUtils.isEmpty(etNum2.getText().toString())) {
            return;
        }
 
        if (TextUtils.isEmpty(etNum1.getText().toString())
                || TextUtils.isEmpty(etNum2.getText().toString())) {
            un = !un;
            if (TextUtils.isEmpty(etNum1.getText().toString()) {
                num1 = Float.parseFloat(etNum2.getText().toString());
            }else{
                num1 = Float.parseFloat(etNum1.getText().toString());
            }
        } else {
            num1 = Float.parseFloat(etNum1.getText().toString());
            num2 = Float.parseFloat(etNum2.getText().toString());
        }
 
        switch (v.getId()) {
            case R.id.btnAdd:
                if (!un) {
                    oper = "+";
                    result = num1 + num2;
                } else {
                    // Сообщение об ошибке, не введено второе число
                    return;
                }
                break;
            case R.id.btnSub:
                if (!un) {
                    oper = "-";
                    result = num1 - num2;
                } else {
                    // Сообщение об ошибке, не введено второе число
                    return;
                }
                break;
            case R.id.btnMult:
                if (!un) {
                    oper = "*";
                    result = num1 * num2;
                } else {
                    // Сообщение об ошибке, не введено второе число
                    return;
                }
                break;
            case R.id.btnDiv:
                if (!un) {
                    oper = "/";
                    result = num1 / num2;
                } else {
                    // Сообщение об ошибке, не введено второе число
                    return;
                }
                break;
            case R.id.btnPow:
                if (!un) {
                    oper = "^";
                    result = (float) Math.pow(num1, num2);
                } else {
                    // Сообщение об ошибке, не введено второе число
                    return;
                }
                break;
            case R.id.btnFact:
                if (un) {
                    oper = "!";
                    result = myFact((int) num1);
                }
                break;
            case R.id.btnSqr:
                if (un) {
                    oper = "^2";
                    result = (float) Math.pow(num1, 2);
                }
                break;
            case R.id.btnSqrt:
                if (un) {
                    oper = "^(1/2)";
                    result = (float) Math.pow(num1, 0.5);
                }
                break;
            default: {
                result = 0;
            }
            break;
        }
 
        tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
        menu.add(0, MENU_RESET_ID, 0, "Reset");
        menu.add(0, MENU_QUIT_ID, 0, "Quit");
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
        switch (item.getItemId()) {
            case MENU_RESET_ID:
                etNum1.setText("");
                etNum2.setText("");
                tvResult.setText("");
                break;
            case MENU_QUIT_ID:
                finish();
                break;
        }
        return super.onOptionsItemSelected(item);
    }

Исправил, я перепутал местами edit в проверки
Вопрос: Progress Button, как вызвать метод, а после закончить Progress?

Есть кнопка с прогрессом, по ее клику вызывается это:

Кликните здесь для просмотра всего текста
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
 private void sendProgress (final LinearProgressButton button){
               int progressColor = color(R.color.mb_purple);
        int color = color(R.color.mb_gray);
        int progressCornerRadius = dimen(R.dimen.mb_corner_radius_4);
        int width = dimen(R.dimen.mb_width_200);
        int height = dimen(R.dimen.mb_height_8);
        int duration = integer(R.integer.mb_animation);
               ProgressGenerator generator = new ProgressGenerator(new ProgressGenerator.OnCompleteListener() {
            @Override
            public void onComplete() {
                morphToSuccess(button);
 
                button.unblockTouch();
 
 
            }
        });
       button.blockTouch(); // prevent user from clicking while button is in progress
       button.morphToProgress(color, progressColor, progressCornerRadius, width, height, duration);
        generator.start(button);
 
   }


класс ProgressGenerator:
Кликните здесь для просмотра всего текста
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
public class ProgressGenerator {
 
    DialogSend ds;
    final String LOG_TAG = "myLogs";
    public interface OnCompleteListener {
 
        void onComplete();
    }
 
    private OnCompleteListener mListener;
    public static int mProgress;
 
    public ProgressGenerator(OnCompleteListener listener) {
        mListener = listener;
    }
 
    public void start(final IProgress button, int duration) {
        mProgress = 0;
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mProgress += 1;
                button.setProgress(mProgress);
                if (mProgress < 100) {
                   // Log.d(LOG_TAG, "Ok");
 
                    handler.postDelayed(this, generateDelay());
                } else {
                    mListener.onComplete();
                }
            }
        }, duration);
    }
 
 
    public void start(final IProgress button) {
        start(button, 500);
    }
 
   private Random random = new Random();
 
    private int generateDelay() {
//        ds.sendSMS();
 
      return random.nextInt(100);
    }
}

в том же классе где вызывается sendProgress, есть метод public void sendSMS() в нем код по отправке SMS.

как и где вызвать этот метод чтобы пока он не выполнится "бежал" progress?
Ответ:
Сообщение от disx
а надо чтоб он показывал прогресс работы метода(ов)
Начали мысль в верном направлении, но сделали неверно. Действительно, надо убирать анимацию после выполнения sendSMS. Я не очень вник в ваш код, но допустим, у вас правильно выставлен момент запуска sendSMS (может быть, можно его и раньше где-то запустить). В этом случае надо снимать анимацию не сразу, а после выполнения sendSMS. Т.е. в конце этой процедуры тоже прописать обратный вызов или использовать какой-нибудь BroadcastReceiver (не знаю, как правильно). И уже в этом обратном вызове снимать анимацию.
Вопрос: Переход на разные активити при нажатии button в зависимости от checkbox

Я написал код, который при нажатии на кнопку переходит на другой activity.

Javascript
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
package com.example.personalhelpergastritis;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class HomeActivity extends AppCompatActivity implements OnClickListener {
 
    Button button;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button:
                Intent intent = new Intent(this, m_o.class);
                startActivity(intent);
                break;
            default:
                break;
        }
    }
}
Хочу сделать, чтобы в зависимости от выбранных checkbox'ов, он переходил на ту activity, которую я укажу. Как это сделать? Если можно поподробнее, не понимаю андроид.
Ответ: Так а я написал как выбирать
Вопрос: Проблема с Button на Android Studio

Здравствуйте, дамы и господа!
Помогите пожалуйста разобраться с проблемой.
Я написал для Андроида приложение, которое решает квадратные уравнения. Приложение состоит только из одной Активити. На этой активити есть форма заполнения уравнения и одна кнопка Button, на которой написано "Расчёт". Всё хорошо работает, устанавливается на телефон, запускается, решает уравнения как надо, но есть одна небольшая проблема. Когда я ввожу желаемое уравнение и нажимаю Button "Расчёт", то собственно надпись "Расчёт" с кнопки пропадает и никогда больше не появляется до рестарта приложения. Так происходит и в эмуляторе и на реальном телефоне. Я уже начал думать, что так и задумано разработчиками. Или может есть какой-то параметр для этого? Или это ошибка или недочёт? Текст слова "Расчёт" взят из ресурсов, а не запрограммирован жестко. Может есть способ прописать в конце слушателя OnClickListener метод который будет снова прописывать текст каждый раз после расчёта? Или может вовсе заменить слушателя на метод onClick?
Помогите пожалуйста! Проблема незначительная, но очень досадная. Сам не могу справиться.

Вот код разметки:

HTML5
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimaryDark"
    tools:context="irokezer58.kvadurforandroid_40.MainActivity">
 
 
    <TextView
        android:id="@+id/textZagl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/zagl"
        android:textAlignment="center"
        android:textAllCaps="false"
        android:textColor="@color/Lime"
        android:textStyle="bold"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
    <EditText
        android:id="@+id/aEdit"
        android:layout_width="54dp"
        android:layout_height="50dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:inputType="numberSigned"
        android:shadowColor="@color/White"
        android:text="@string/a"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textColorHighlight="@android:color/holo_blue_bright"
        android:textColorHint="?attr/colorPrimaryDark"
        android:textColorLink="@color/White"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/textXq"
        app:layout_constraintTop_toTopOf="parent" />
 
    <EditText
        android:id="@+id/bEdit"
        android:layout_width="55dp"
        android:layout_height="50dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:inputType="numberSigned"
        android:text="@string/b"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textColorLink="@color/White"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/textX"
        app:layout_constraintTop_toTopOf="parent" />
 
    <EditText
        android:id="@+id/cEdit"
        android:layout_width="55dp"
        android:layout_height="50dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:inputType="numberSigned"
        android:text="@string/c"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textColorLink="@color/White"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/textZero"
        app:layout_constraintTop_toTopOf="parent" />
 
    <TextView
        android:id="@+id/textXq"
        android:layout_width="55dp"
        android:layout_height="40dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/xQ"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/bEdit"
        app:layout_constraintTop_toTopOf="parent" />
 
    <TextView
        android:id="@+id/textX"
        android:layout_width="54dp"
        android:layout_height="40dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/x"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/cEdit"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.501" />
 
    <TextView
        android:id="@+id/textZero"
        android:layout_width="55dp"
        android:layout_height="40dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/zero"
        android:textAlignment="center"
        android:textColor="@color/Lime"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
    <Button
        android:id="@+id/buttonRashc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:background="@color/Lime"
        android:text="@string/ButtonRaschot"
        android:textColor="@color/Dark"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/bEdit" />
 
    <TextView
        android:id="@+id/textVasheUr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textZagl" />
 
    <TextView
        android:id="@+id/textmUr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textVasheUr" />
 
    <TextView
        android:id="@+id/textDiskrim"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textmUr" />
 
    <TextView
        android:id="@+id/textmDiskrim"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        app:layout_constraintLeft_toRightOf="@+id/textDiskrim"
        app:layout_constraintTop_toBottomOf="@+id/textmUr" />
 
    <TextView
        android:id="@+id/textmOtvet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textDiskrim" />
 
    <TextView
        android:id="@+id/textmXX"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:textColor="@color/Lime"
        android:textSize="24sp"
        app:layout_constraintBottom_toTopOf="@+id/bEdit"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textmOtvet" />
 
</android.support.constraint.ConstraintLayout>
Вот код программы:

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package irokezer58.kvadurforandroid_40;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    private Button mRashcot;
    private EditText mCoefa;
    private EditText mCoefb;
    private EditText mCoefc;
    private TextView mFirsStrin;
    private TextView mTwoString;
    private TextView mTreeString;
    private TextView mFourString;
    private TextView mFiveString;
    private TextView mXX;
 
    double tmp02a;
    String tmp01a;
    double tmp02b;
    String tmp01b;
    double tmp02c;
    String tmp01c;
    double mDs;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        mRashcot = (Button)findViewById(R.id.buttonRashc);
        mFirsStrin = (TextView)findViewById(R.id.textVasheUr);
        mTwoString = (TextView)findViewById(R.id.textmUr);
        mTreeString = (TextView)findViewById(R.id.textDiskrim);
        mFourString = (TextView)findViewById(R.id.textmDiskrim);
        mFiveString = (TextView)findViewById(R.id.textmOtvet);
        mXX = (TextView)findViewById(R.id.textmXX);
 
        mRashcot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                mRashcot.setText("");
                mFirsStrin.setText("");
                mTwoString.setText("");
                mTreeString.setText("");
                mFourString.setText("");
                mFiveString.setText("");
                mXX.setText("");
 
                mCoefa = (EditText)findViewById(R.id.aEdit);
                mCoefb = (EditText)findViewById(R.id.bEdit);
                mCoefc = (EditText)findViewById(R.id.cEdit);
 
                tmp01a = mCoefa.getText().toString();
 
                if (tmp01a==null) tmp02a = 0;
                else{
                    tmp02a = new Double(tmp01a);}
 
                tmp01b = mCoefb.getText().toString();
 
                if (tmp01b==null) tmp02b = 0;
                else{
                    tmp02b = new Double(tmp01b);}
 
                tmp01c = mCoefc.getText().toString();
 
                if (tmp01c==null) tmp02c = 0;
                else{
                    tmp02c = new Double(tmp01c);}
 
                QadUr Urav = new QadUr (tmp02a, tmp02b, tmp02c);
 
                mFirsStrin.setText("Ваше уравнение:");
 
                Urav.Diskrim();
                Urav.createUravneniye();
                mDs = Urav.getD();
 
                mTwoString.setText(Urav.getmUravneniye());
                mTreeString.setText("Дискриминант уравнения =  ");
                mFourString.setText(Urav.getmDString());
 
 
                // КОГДА  КОРНЕЙ  НЕТ
                if (mDs<0) {
                    mFiveString.setText("Дискриминант - отрицательное число. Уравнение не имеет корней.");
                }
 
                if (mDs==0){
                    mFiveString.setText("Дискриминант равен нулю. Уравнение имеет один корень.");
                    Urav.X_1();
                    mXX.setText("x = "+Urav.getX1());
                }
                if (mDs>0){
                    mFiveString.setText("Дискриминант - положительное число. Уравнение имеет два корня.");
                    Urav.X_1();
                    Urav.X_2();
                    mXX.setText("x1 = "+Urav.getX1()+"\n"+"x2 = "+Urav.getX2());
                }
 
            }
        });
 
 
 
    }
}
Вот код ресурсов (на всякий случай):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<resources>
 
    <string name="app_name">Квадратные уравнения</string>
    <string name="a">а</string>
    <string name="b">b</string>
    <string name="c">c</string>
    <string name="x">x+</string>
    <string name="xQ">x^2+</string>
    <string name="zero">=0</string>
    <string name="plus">+</string>
    <string name="ravno">=</string>
    <string name="zagl">Решение квадратного уравнения</string>
    <string name="ButtonRaschot">Расчёт</string>
    <string name="Diskrim">Дискриминант уравнения =  </string>
    <string name="KorneyNet">Дискриминант - отрицательное число. Корней нет.</string>
    <string name="OdinKoren">Дискриминант равен нулю. Уравнение имеет один корень.</string>
    <string name="DvaKornya">Дискриминант - положительное число. Уравнение имеет два корня.</string>
    <string name="Vashe">Ваше уравнение:</string>
    <string name="about_title">Неизвестная надпись</string>
    <string name="tmp">0</string>
 
</resources>

Надеюсь я правильно разместил код в посте.

Пожалуй приложу скриншоты пропавшей надписи в эмуляторе:
Ответ: Чёрт! Как я сам не заметил? Спасибо большое! Впредь буду внимательнее... надеюсь.
Вопрос: Найти Button в PreferenceActivity

Надо скрыть кнопку в PreferenceActivity. Не могу ее поймать, почему то null.
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
public class SettingsActivity extends PreferenceActivity {
    public static class AboutPreferenceFragment extends PreferenceFragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View result = super.onCreateView(inflater, container, savedInstanceState);
            if (result != null) {
                View lv = result.findViewById (android.R.id.list);
                Button  button = (Button) lv.findViewById(R.id.upgrade);
                button.setVisibility(Button.GONE); //  java.lang.NullPointerException
            }
            return result;
        }
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_about);
            Preference aboutPref = (Preference) findPreference("about");
            aboutPref.setLayoutResource(R.layout.activity_about_);
        }
}
Ответ: _Night_Scream_,
Например в планшетах где места много и PreferenceActivity состоит из двух панелей. Там кнопка сама просится.
В обычных телефонах там да, кнопка на другой активити находится.

Добавлено через 45 минут
такая же проблема, как я понял решения нет.
Мне надо при определенных условиях скрывать эту кнопку. Пока решение - использовать разные layout.
Вопрос: ListView и image

Есть список ListView у списка есть adapter (XML файл) в нем TextViev и хотелось бы добавить Image View но проблема в том что не у всех строк есть картинки, то есть нужна проверка . Если файл существует то Image View показывает картинку иначе Image View (GONE)Но как сделать такую логику в адаптере? Он же XML...
Ответ: ну да.., но чтобы его создать нужно создать файл newadapter.xml что я и сделал.

Добавлено через 1 минуту
положил его в layout папку

Добавлено через 1 минуту
и теперь мне непонятно как быть с логикой? Если у первой строки картинка есть а у второй и третьей нет а у четвертой снова есть
Вопрос: Image in Drawable

Как из Image изображение сохранить в Drawable. Изображение с интернета подгрузил, я в Image. А как сохранить в папку Drawable, не нашел ничего в гугле. Юзаю: Android Studio
Ответ: Вот набросал примерчик, как сохранить и достать картинку в/из памяти. При нажатии на imageView2, достаём bitmap из imageView, записываем во внутреннюю память. Потом читаем и сетим наш прочитаный из памяти bitmap в imageView2(у меня работает):

Код 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
public class Test extends Activity implements View.OnClickListener {
 
    ImageView imageView, imageView2;
    Bitmap bitmap;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
 
        imageView = (ImageView) findViewById(R.id.imageView);
        imageView2 = (ImageView) findViewById(R.id.imageView2);
        bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
 
        imageView2.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        saveBitmap(bitmap);
        Bitmap newBitmap = loadBitmap();
        imageView2.setImageBitmap(newBitmap);
    }
 
    private void saveBitmap(Bitmap bitmap) {
        try {
            FileOutputStream out = new FileOutputStream(this.getFilesDir().toString() + "MyBitmap");
            bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private Bitmap loadBitmap() {
        return BitmapFactory.decodeFile(this.getFilesDir().toString() + "MyBitmap");
    }
 
}
Вопрос: В объявлении new Button красным подчёркивает "this"

Здравствуйте, уважаемы программисты! Не могли бы вы мне помочь?

ЧТО НЕ ТАК С ЭТИМ ОТРЫВКОМ КОДА?????????

Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
public void onClick(View v) {
                        hi.setText("Пользоваться викториной очень легко! На экране появится вопрос, а вам надо будет лишь нажать на правильный вариант ответа. Если вы ответите неправильно, вы сможете попробовать ещё раз, но баллы вам уже не засчитаются! Ну что, начнём?");
                        next.setOnClickListener(new OnClickListener(){
                            @Override
                            public void onClick (View v){
                                RelativeLayout RelativeLayout;
                                RelativeLayout = (RelativeLayout) findViewById(R.id.RelativeLayout);
                                Button question = new Button(this);
                                RelativeLayout.addView(question, Gravity.RIGHT);
                            }
                        });
                    }
Я просто в недоумении.. Android Studio подчёркивает "this" красным штрихом..

ЗАРАНЕЕ ОГРОМНОЕ ТОТАЛЬНОЕ ВСЕЛЕНСКОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!
Ответ:
Сообщение от Valakin
MainActivity.this
так нужно писать если дело происходит во вложенном классе, в коде из первого сообщения this будет указывать на класс слушателя, а не на саму активити