无法通过Android中的setText函数设置文本

时间:2016-10-10 16:09:18

标签: 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不能用于这个程序吗?

3 个答案:

答案 0 :(得分:0)

您正在从另一个java调用java中的方法..返回文本的方法位于show_content类。

您正在调用MyActivity类中的方法。

因此,您使用的BookChapter方法不是设置文本的方法,而只是调用setContentview方法。另外,您缺少第二个活动中的setContentView方法

你有两个活动,但只有一个方法被解雇,或者你在编写的行中缺少很多代码,或者你必须在编程之前开始研究android如何工作,我建议你those videos。在我看来,他们是初学者的最佳选择

祝你好运

答案 1 :(得分:0)

在您的Show_Content活动中onCreate添加此行

 setContentView(R.layout.show_content); 

它应该是:

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

答案 2 :(得分:0)

您没有从您的活动中获取任何视图。此外,您忘记在活动中设置布局。

    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");

    }