【问题标题】:Expanding on Hello World tutorial扩展 Hello World 教程
【发布时间】:2013-05-23 18:30:53
【问题描述】:

我正在编写我的第一个应用程序,并且仍在学习JavaXML。 android 教程设置了两个活动,一个接收用户输入,另一个活动简单地获取输入并显示在另一个屏幕上。第二个活动看起来像这样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //Get the message from Intent
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);


    //Create the text view
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(message);

    setContentView(textView);
}

我的问题是:如何在 xml 中使用“消息”而不是这个 java 文档?我想避免使用 setContentView(textView) 因为我想向活动屏幕添加更多内容。您有什么建议的解决方案?

【问题讨论】:

    标签: java android xml


    【解决方案1】:

    setContentView() 是为您的 Activity 加载 UI 所必需的。您有两个选项来创建发送到setContentView() 的主视图:

    1. 您可以使用 Java 代码创建布局。

    2. 您可以在 XML 文件中创建布局。

    对于静态 UI,通常首选第二个,而当 UI 更动态时使用第一个。

    我建议您熟悉the Official Android Documentation。特别是,您应该查看 UI Overview 以了解 Android UI 框架。

    您可能还对使用string resource 来存储用于“附加”的密钥感兴趣,这些密钥存储在Intent 中,该Intent 发送到您的onCreate() 方法。

    【讨论】:

      【解决方案2】:

      我不确定我是否理解,但如果我理解了,请将您的 TextView 放在一个 xml 文件中的 layout 中,然后在 setContentView) 中使用它。像

      <?xml version="1.0" encoding="UTF-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/rootLayout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">
      <TextView 
          android:id="@+id/tv1"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="Your message"/>  // it is better to use strings.xml instead of hard-coded strings
      </LinearLayout>
      

      说这叫myLayout.xml

      public class MyClass extends Activity{
      TextView tv1;
      rotected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.myLayout);
      tv1 = (TextView) findViewById(R.id.tv1);
      }
      

      您无法在运行时添加到 xml 文件,但您现在可以将 TextView 中的文本设置为您想要的任何内容

        public class MyClass extends Activity{
      TextView tv1;
      rotected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.myLayout);
      tv1 = (TextView) findViewById(R.id.tv1);
      tv1.setText("Other Text");
      }
      

      我希望这回答了你的问题,因为我对你的问题到底是什么有点困惑

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多