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