Приветствую, я пишу математическое приложение и серьёзно застрял на одном месте..
Проблема состоит в том что мне нужно, чтобы при клике на элемент ListView происходило присваивание ранее заданной переменной (
znachn1
) некоторого числового значения.
Алгоритм выполнения Activity состоит в следующем:
1) Инициализация действия(RadioGroup);
2) Выбор значений переменных для выбранного действия(ListView);
3) Вывод ответа на следующий Activity(Toast).
Сейчас при выборе любого элемента ListView выводится 0.0..
Как решить данную проблему?
Код MessageActivity1:
public class MessageActivity1 extends AppCompatActivity {
TextView celzadach, poyas4, poyas5, poyas6;
RadioGroup rgroup;
RadioButton sravnenkr1, sravnenkr2, sravnenkr3;
Spinner spn2;
String prioritet[] = {"9", "8", "7", "6", "5", "4", "3", "2", "1"};
ArrayAdapter<String> adapter2;
double znachn1;
Button sootnesen1;
static double d, b;
boolean block;
ListView spisok1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_message1);
celzadach = (TextView) findViewById(R.id.celzadach);
Intent intent5 = getIntent();
String message1 = intent5.getStringExtra("message1");
celzadach.setText(message1);
poyas4 = (TextView) findViewById(R.id.poyas4);
poyas4.setText("Определение важности критериев сравнения относительно заявленной цели:");
poyas5 = (TextView) findViewById(R.id.poyas5);
poyas5.setText("Какой из сравниваемых критериев более предпочтительный?");
poyas6 = (TextView) findViewById(R.id.poyas6);
poyas6.setText("Предпочтительней на сколько?");
sravnenkr1 = (RadioButton) findViewById(R.id.sravnenkr1);
Intent intent6 = getIntent();
String message2 = intent6.getStringExtra("message2");
sravnenkr1.setText(message2);
sravnenkr2 = (RadioButton) findViewById(R.id.sravnenkr2);
Intent intent7 = getIntent();
String message3 = intent7.getStringExtra("message3");
sravnenkr2.setText(message3);
sravnenkr3 = (RadioButton) findViewById(R.id.sravnenkr3);
sravnenkr3.setText("Сравниваемые критерии одинаково важны");
spisok1 = (ListView) findViewById(R.id.spisokPtioritet);
adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, prioritet);
spisok1.setAdapter(adapter2);
spisok1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position2, long id) {
switch (position2) {
case 0:
znachn1 = 9;
break;
case 1:
znachn1 = 8;
break;
case 2:
znachn1 = 7;
break;
case 3:
znachn1 = 6;
break;
case 4:
znachn1 = 5;
break;
case 5:
znachn1 = 4;
break;
case 6:
znachn1 = 3;
break;
case 7:
znachn1 = 2;
break;
case 8:
znachn1 = 1;
break;
}
}
});
rgroup = (RadioGroup) findViewById(R.id.RadioGroup1);
rgroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int q) {
switch (q) {
case R.id.sravnenkr1:
d = znachn1;
b = 1 / znachn1;
break;
case R.id.sravnenkr2:
b = znachn1;
d = 1 / znachn1;
break;
case R.id.sravnenkr3:
d = 1;
b = 1;
break;
}
}
});
sootnesen1 = (Button) findViewById(R.id.sootnesen1);
sootnesen1.setText("Далее");
sootnesen1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent8 = new Intent(MessageActivity1.this, MessageActivity2.class);
Toast toast1 = Toast.makeText(getApplicationContext(),"w0="+w0, Toast.LENGTH_SHORT);
toast1.show();
startActivity(intent8);
}
});
}
}
Код MatrixMessageActiviry123:
class MatrixMessageActiviry123 {
static byte a = 1;
static byte e = 1;
static byte i = 1;
static double w0 = d/b;
Буду очень благодарен за дельный совет, почти месяц решаю проблему, с этими значениями..
Ранее пытался выводить через Spinner, но он при запуске Activity сходу выбирал первое значение первого элемента списка, в следствии чего нарушался алгоритм, и программа работала несколько не правильно, однако, всё считала..