Проблема с отображением текста

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 09:34

Здравствуйте, специалисты!
Я пока новичок, но уроки с сайта очень заинтересовали, пробую реализовать знания на практике. Возникло ряд проблем.
Во-первых, не получается сделать текст в TextActivity видимым (так как хочу показывать разный текст при нажатии на разные кнопки). Вот такой код:

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

public class MainActivity extends Activity implements OnClickListener{
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
	    final Button btn1 = (Button)findViewById(R.id.btn1);
	    final Button btn2 = (Button)findViewById(R.id.btn2);
	    final Button btn3 = (Button)findViewById(R.id.btn3);
	    final Button btn4 = (Button)findViewById(R.id.btn4);
	    final Button btn5 = (Button)findViewById(R.id.btn5);
	    final Button btn6 = (Button)findViewById(R.id.btn6);
	    final Button btn7 = (Button)findViewById(R.id.btn7);
	    final Button btn8 = (Button)findViewById(R.id.btn8);
	    
	    btn1.setOnClickListener(this);
	    btn2.setOnClickListener(this);
	    btn3.setOnClickListener(this);
	    btn4.setOnClickListener(this);
	    btn5.setOnClickListener(this);
	    btn6.setOnClickListener(this);
	    btn7.setOnClickListener(this);
	    btn8.setOnClickListener(this);
	    
	    TextView nstep1=(TextView)findViewById(R.id.nstep1);
	    TextView tstep1=(TextView)findViewById(R.id.tstep1);
	    
	    
	  }

	  @Override
	  public void onClick(View v) {
	    switch (v.getId()) {
	    case R.id.btn1:
	    	  Intent intent1 = new Intent(this, TextActivity.class);
	          startActivity(intent1);
	          TextView nstep1=(TextView)findViewById(R.id.nstep1);
	          nstep1.setVisibility(View.VISIBLE);
	      // TODO Call second activity
	      break;
	    case R.id.btn2:
	      break;
	    case R.id.btn3:
		      break;
	    case R.id.btn4:
		      break;
	    case R.id.btn5:
		      break;
	    case R.id.btn6:
		      break;
	    case R.id.btn7:
		      break;
	    case R.id.btn8:
		      break;
	      
	    }
	  }
	}

Но при попытке отладки на планшете черный экран при нажатии на кнопку (сама кнопка тестируется хорошо до того, как выставлено "сделать текст видимым".

Вторая проблема не дает покоя уже несколько дней - не получается считать текстовые файлы различных форматов. К примеру, почему-то не работает следующий код:

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

public class QuizHelpActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.help);
		
		InputStream iFile=getResources().openRawResource(R.raw.step1);
		TextView helpText=(TextView) findViewById(R.id.textstep);
		String strFile=inputStreamToString(iFile);
		helpText.setText(strFile);
	}

	private String inputStreamToString(InputStream iFile) {
		// TODO Auto-generated method stub
		return null;
	}


	}


Очень хотела бы узнать свои ошибки :(
Когда-нибудь я научусь!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Проблема с отображением текста

Сообщение klblk » 10 фев 2014, 10:11

1. Не понятно что значит сделать текст видимым? изначально он не видимый?
так как хочу показывать разный текст при нажатии на разные кнопки
При нажатии на кнопку делаете nstep1.setText("myText").

2. Попробуйте, что-нибудь тут: http://stackoverflow.com/questions/4087 ... ource-file

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 10:31

1. Я в layout сделала TextView невидимым, правда, в TextActivity не прописывала этого.
А можно ли как-то подключить созданные String с текстом, чтобы в указанном выше TextView отображался разный текст при нажатии на кнопки? (Просто объем текста довольно большой, чтобы помещать в setText). Прошу прощения, если не так что-то понимаю..
Когда-нибудь я научусь!

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 10:42

По какой-то причине после помещения setText кнопка вообще отказалась нажиматься.. Возможно, стоит дописать что-то в TextActivity? Вот такой отрезок дописанного кода интента с кнопкой:

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

 @Override
	  public void onClick(View v) {
	    switch (v.getId()) {
	    case R.id.btn1:
	    	  Intent intent = new Intent(this, TextActivity.class);
	    	  TextView nstep1=(TextView)findViewById(R.id.nstep1);
	          TextView tstep1=(TextView)findViewById(R.id.tstep1);
	          nstep1.setText("myText");
	          startActivity(intent);
Когда-нибудь я научусь!

Timurovic
Сообщения: 12
Зарегистрирован: 18 сен 2012, 16:42

Re: Проблема с отображением текста

Сообщение Timurovic » 10 фев 2014, 10:44

IriDolG писал(а):1. Я в layout сделала TextView невидимым, правда, в TextActivity не прописывала этого.
А можно ли как-то подключить созданные String с текстом, чтобы в указанном выше TextView отображался разный текст при нажатии на кнопки? (Просто объем текста довольно большой, чтобы помещать в setText). Прошу прощения, если не так что-то понимаю..
1. Можно использовать ресурсы, например: <string name="text">текст переносами</string>
2. Можно использовать текстовый файл и оттуда считывать

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 10:54

Timurovic писал(а):
IriDolG писал(а): 1. Можно использовать ресурсы, например: <string name="text">текст переносами</string>
Наверно, это немного не то. Я имею в виду, что при нажатии разных кнопок выводится разный текст в одной активити.
Когда-нибудь я научусь!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Проблема с отображением текста

Сообщение klblk » 10 фев 2014, 10:57

как написали выше, строки можно из ресурсов получить getString(R.string.myString) (где myString строка прописанная в strings.xml)
IriDolG писал(а):По какой-то причине после помещения setText кнопка вообще отказалась нажиматься.. Возможно, стоит дописать что-то в TextActivity? Вот такой отрезок дописанного кода интента с кнопкой:

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

 @Override
	  public void onClick(View v) {
	    switch (v.getId()) {
	    case R.id.btn1:
	    	  Intent intent = new Intent(this, TextActivity.class);
	    	  TextView nstep1=(TextView)findViewById(R.id.nstep1);
	          TextView tstep1=(TextView)findViewById(R.id.tstep1);
	          nstep1.setText("myText");
	          startActivity(intent);
Все еще не ясно то что вы желаете получить. Если нужно передать текст в другое Activity, то это делается спомощью extras:
http://startandroid.ru/ru/uroki/vse-uro ... ntent.html

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 11:02

klblk, я создала разные Strings с текстами. Хочу, чтобы при нажатии на кнопки MainActivity осуществлялся переход в TextActivity, но при этом показывался разный текст (то есть в TextView вставлялись разные String)
Когда-нибудь я научусь!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Проблема с отображением текста

Сообщение klblk » 10 фев 2014, 11:04

IriDolG писал(а):klblk, я создала разные Strings с текстами. Хочу, чтобы при нажатии на кнопки MainActivity осуществлялся переход в TextActivity, но при этом показывался разный текст (то есть в TextView вставлялись разные String)
тогда все правильно, смотрите ссылку на урок выше

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 12:03

klblk, в этом примере используется EditText. А каким методом передать уже созданные стринг в текствью другой активити?
Когда-нибудь я научусь!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Проблема с отображением текста

Сообщение klblk » 10 фев 2014, 12:27

IriDolG писал(а):klblk, в этом примере используется EditText. А каким методом передать уже созданные стринг в текствью другой активити?
из EditText'ты мы получаем обычную строку. Не имеет значение как мы получаем, передать можно любую строку.
[syntax=java] intent.putExtra("my_string_tag", myString);[/syntax]
myString - это ваша строка, как вы ее получаете это уже другой вопрос, с помощью getString из ресурсов или еще как-то.

потом в TextActivity:
[syntax=java]String myString= intent.getStringExtra("my_string_tag");[/syntax]

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 12:35

При написании предложенного кода приложение дает сбой... Хотя по всей логике составлено все верно.

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

 switch (v.getId()) {
	    case R.id.btn1:
	    	  Intent intent = new Intent(this, TextActivity.class); 
              TextView nstep=(TextView)findViewById(R.id.nstep); 
               
              nstep.setText("текст"); 
              startActivity(intent);
	          
Когда-нибудь я научусь!

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Проблема с отображением текста

Сообщение klblk » 10 фев 2014, 12:39

я не вижу тут предложенного кода... зачем вообще в onClick какой-то TextView, где putExtra, где лог с ошибкой? в интент нужно передать строку, в новой активити ее получить и тамже сделать setText для TextView.

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 12:47

Так ведь в TextActivity должен быть ответ для разных интентов - кнопок то ведь несколько.. Я немного запуталась - в "my_string_tag" что нужно писать? Он ведь должен быть уникальным для каждой кнопки?
PS: прошу прощения за свою назойливость.
Когда-нибудь я научусь!

Аватара пользователя
IriDolG
Сообщения: 46
Зарегистрирован: 10 фев 2014, 09:23

Re: Проблема с отображением текста

Сообщение IriDolG » 10 фев 2014, 13:08

Ух, разобралась! klblk, огромное Вам спасибо!
Когда-нибудь я научусь!

Ответить