我想使用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不能用于这个程序吗?
答案 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");
}