Не удалось установить текст с помощью функции setText в Android

#android

#Android

Вопрос:

Я хочу установить значение с помощью функции setText. Но мой код не работает.

activity_my.xml

     <Button
    style="@android:style/Widget.DeviceDefault.ActionBar.TabBar"
    android:theme="@android:style/Animation.Activity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Select"
    android:id="@ id/button1"
    android:textColorHighlight="#ffff7dd0"
    android:textStyle="bold"
    android:textColor="#ff1fff5f"
    android:clickable="true"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="129dp"
    android:onClick="BookChapter"/>@
  

MyActivity.java

 public class MyActivity extends Activity {   
    @Override    protected void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.activity_my);   
  }

  public void BookChapter(View view){
     setContentView(R.layout.activity_secbg);    
  } 
}
  

activity_secbg.xml

 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Chapter 01"
    android:id="@ id/button01"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true"
    android:onClick="BookContent"/>
  

show_content.xml

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Existing Text"`
    android:id="@ id/textView5"
    android:layout_centerHorizontal="true"
    android:layout_below="@ id/imageView"
    android:editable="true" />
  

show_content.java

 public class Show_Content extends Activity {
    public TextView myAwesomeTextView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    } 

    public void BookContent(View view) {
      setContentView(R.layout.show_content);
      switch (view.getId()) {
        case (R.id.button01):
        myAwesomeTextView = (TextView) findViewById(textView5);
        myAwesomeTextView.setText("Awesome");
        break;
      }
     }
   }
  

Может кто-нибудь, пожалуйста, помогите проверить, почему setText не работает для этой программы?

Комментарии:

1. Пожалуйста, отформатируйте свой код, используя правильную разметку

2. Пожалуйста, уточните — в каком поле? Также, пожалуйста, отформатируйте свой код.

Ответ №1:

в вашей Show_Content деятельности onCreate добавьте эту строку

  setContentView(R.layout.show_content); 
  

это должно быть:

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 setContentView(R.layout.show_content); 
    } 
  

Ответ №2:

Вы вызываете метод в java из другой java .. метод, возвращающий текст, находится в show_content классе.

вы вызываете метод в MyActivity классе.

Таким BookChapter образом, используемый вами метод не устанавливает текст, он просто вызывает setContentview метод. Кроме того, вам не хватает setContentView метода во втором действии

У вас есть два действия, но запущен только метод, или вам не хватает большого количества кода в написанных вами строках, или вам нужно начать изучать, как работает Android, прежде чем программировать, я предлагаю вам эти видео. на мой взгляд, они лучше всего подходят для начинающих

Удачи

Комментарии:

1. public void BookContent(View view) { setContentView(R.layout.show_content); switch (view.getId()) { case (R.id.button01): myAwesomeTextView = (TextView) findViewById(textView5); myAwesomeTextView.setText(«Awesome»); break; } }

2. Мне нужно поместить код BookContent () в MyActive.java файл, похоже, работает нормально.

Ответ №3:

вы не получаете никакого представления о своей активности. Кроме того, вы забыли установить макет в своей деятельности.

     public TextView myAwesomeTextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.show_content);
        myAwesomeTextView = (TextView) findViewById(R.id.textView5);
        myAwesomeTextView.setText("Awesome");

    }