Страница 1 из 1

сравнение item из string array

Добавлено: 04 июн 2014, 17:49
TemMax
Добрый день. Никак не могу понять, как выполнять сравнение из string array с какой-либо строкой.
У меня есть 2 слова в массиве. Что собственно я не могу сделать: При нажатии на кнопку, если рандомно из массива вытянуло "Нет" менять background кнопки. Если "Да", то заново менять.
бэкграунды у меня готовые все. Не могу никак с этим только разобраться.. прошу о помощи :roll:

Код: Выделить всё

    <resources>
        <string-array name="yesnoarr">
            <item >ДА</item>
            <item >НЕТ</item>
        </string-array>
    </resources>

Re: сравнение item из string array

Добавлено: 04 июн 2014, 18:06
Foenix
и где в данном коде сравнение?
или большие буквы - это для убедительности, а оно все равно не сравнивает?

Re: сравнение item из string array

Добавлено: 04 июн 2014, 18:15
TemMax
Foenix писал(а):и где в данном коде сравнение?
или большие буквы - это для убедительности, а оно все равно не сравнивает?
Спасибо за столь быструю реакцию, но простите, вы не так поняли :)
Не могу понять, как написать в самой activity сравнение... Пробовал несколько способов..и гугл спрашивал.. Но там ничего не нашел.
Думаю, что-то типа:

Код: Выделить всё

final Button bbtnRandom = (Button) findViewById(R.id.bbtnRandom);
        
        bbtnRandom.setOnClickListener(new View.OnClickListener() {
		
			@Override
			public void onClick(View v) {

				Resources res = getResources();

			    myarr = res.getStringArray(R.array.yesnoarr); 

			    String answer = myarr[rgenerator.nextInt(myarr.length)];
			    bbtnRandom.setText(answer);
			    
				if (answer.getBytes().toString()) { // в этой строке моя проблема... Не знаю, как создать условие if (. . . = "НЕТ") тогда чтобы выполнялся код ниже (т.е. замена бэкграунда кнопки)..
					
				findViewById(R.drawable.buttonshapeno);
				bbtnRandom.setBackgroundResource(R.drawable.buttonshapeno);
				}
			}
		});

Re: сравнение item из string array

Добавлено: 04 июн 2014, 18:27
Foenix
тут две части
к массиву в ресурсах обращаться примерно так
context.getResources().getStringArray(R.array.чтоувастам)

сравнение строк -
https://www.google.ru/search?client=ope ... gws_rd=ssl

Re: сравнение item из string array

Добавлено: 04 июн 2014, 18:45
TemMax
Foenix писал(а):тут две части
к массиву в ресурсах обращаться примерно так
context.getResources().getStringArray(R.array.чтоувастам)

сравнение строк -
https://www.google.ru/search?client=ope ... gws_rd=ssl

о, так и делал сравнение. Но мне показывало(ет) ошибку на context.getResources().getStringArray(R.array.yesnoarr)
не знаю, в чем проблема... возможно, в моем столь малом уровне знания java, но все же, прошу помочь с этим моментом..

Re: сравнение item из string array

Добавлено: 04 июн 2014, 19:04
Mikhail_dev
Метод equals для сравнения. Учите Java.

Re: сравнение item из string array

Добавлено: 04 июн 2014, 19:07
TemMax
Mikhail_dev писал(а):Метод equals для сравнения. Учите Java.
Что я собственно и делаю. Я использовал equals с тем, что мне написали выше. Я написал ошибку, которая у меня выскакивает

Re: сравнение item из string array

Добавлено: 04 июн 2014, 19:25
TemMax
Всем огромное спасибо!
Проблема решена довольно таки очень простым способом —

Код: Выделить всё

@Override
			public void onClick(View v) {
			//	String answer = (yesno[new Random().nextInt(yesno.length)]);
			//	bbtnRandom.setText(answer);
				Resources res = getResources();

			    myarr = res.getStringArray(R.array.yesnoarr); 
			    String answer = myarr[rgenerator.nextInt(myarr.length)];
			    bbtnRandom.setText(answer);	   
					
			    String yes = new String("ДА");
			    String no = new String("НЕТ");
			    
			    if(answer.equals(yes)) { 
					findViewById(R.drawable.buttonshapeyes);
					bbtnRandom.setBackgroundResource(R.drawable.buttonshapeyes);
					}
			    
			    if(answer.equals(no)) {
			    	findViewById(R.drawable.buttonshapeno);
			    	bbtnRandom.setBackgroundResource(R.drawable.buttonshapeno);
			    	}

				}
Тему можно закрывать.

Re: сравнение item из string array

Добавлено: 04 июн 2014, 19:30
Foenix
context - это не статическая переменная, его еще получить надо.
getActivity()
getBaseContext() и так далее.