Проблема в AndroidStudio. Есть несколько Layout, есть MainActivity.java. Переключаюсь между ними через setContentView, через onClick() в Layout. Переключатся отлично! Такие команды, как finish() и SystemOutPrintln() тоже прекрасно запускаются. Но при подаче команды setText() всё крашится.
public class MainActivity extends ActionBarActivity {
TextView tvOut;
Button btnStart;
public void onClickzadvopr(View v)
{
setContentView(R.layout.shar);
}
public void onClickreshenie(View v)
{
setContentView(R.layout.monetka);
}
public void onClickSigrkosti(View v)
{
setContentView(R.layout.kosti);
}
public void onClickuznvolzvzd(View v)
{
setContentView(R.layout.goroskop);
}
public void onClickNazad(View v)
{
setContentView(R.layout.activity_main);
}
//public void onClickStart(View v) {tvOut.setText("Нажата кнопка ОК"); // Вот если эту строку сделать активной — всё крашится при нажатии на кнопку!
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvOut = (TextView) findViewById(R.id.tvOut);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}}
Глюк проявляется только при нажатии на кнопку. Пробовал другие способы вывода текста (создавал обработчик, заполнял метод onClick(), присваивал обработчик кнопке), тогда крашилось сразу же, как запускалось.
Если пробовать метод через switch(getId) и case — тоже крашится при нажатии кнопки. Мне говорили, что надо создавать другие активити через Intent Но неужели нельзя просто вывести текст из одного MainActivity.java в несколько разных Layout?
Ведь по той же самой команде onClick() переключение и остальные команды прекрасно работают, почему не работает setText()? А вот как выглядит-то активити-кнопка, из которого крашит всё:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Назад!"
android:id="@+id/button8"
android:layout_gravity="center_horizontal"
android:onClick="onClickNazad"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="шар"
android:id="@+id/textView5"
android:layout_gravity="center_horizontal" />
<Button
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start">
</Button>
<TextView
android:id="@+id/tvOut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="50dp"
android:text="TextView">
</TextView>