我是新来的,也是Android编程的新手。所以对此的任何帮助将不胜感激。
我正在运行Android应用程序(基本上是developer.android.com中给出的示例)。该应用程序的想法是让用户在第一个屏幕中输入消息,并在第二个屏幕中显示消息。 / p>
我遇到的问题是当我在“DisplayMessageActivity.java”中的“OnCreate”中使用以下代码时,我的应用程序工作正常,并在第二个屏幕上完美显示文本。
public class DisplayMessageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
}
但是当我使用时,
setContentView(J.layout.activity_display_message);
而不是
setContentView(textView);
然后它只显示空白的第二个屏幕。
“activity_display_message.xml”的代码如下,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".DisplayMessageActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
所以我的问题是为什么contentview,在这里引用“active_display_message.xml”,不起作用,哪种方式更好地显示文本。
答案 0 :(得分:0)
我也是Android的新手,所以我可能不知道这一点,但到目前为止我读过的所有内容中我都没见过J.layout
,而是R.layout
。
答案 1 :(得分:0)
要在布局中使用TextView
,首先需要在android:id
布局中为TextView
设置active_display_message.xml
属性。然后在活动中,使用findViewById
方法调用它。例如:
:
<TextView
android:id="@+id/text_view_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
然后在您的活动中,您需要调用它:
TextView textView = (TextView) findViewById(R.id.text_view_id)
答案 2 :(得分:0)
好的,这就是你在做什么
TextView textView = new TextView(this);
这意味着您要动态创建TextView。除非您需要,否则在TextView
文件中xml
时,您不需要执行此操作。出于您的目的,您不需要动态创建TextView
。
您应该使用您在TextView
文件中创建的xml
。您可以使用xml
访问java文件中id
在findViewById(R.id.control_id)
中定义的任何控件(TextView / EditText),并且id将是唯一的。
首先为TextView指定一个id
android:id="@+id/tv_1" // assigning id
您的布局文件应如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation = "vertical" >
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
然后在您的活动中,执行以下操作
public class DisplayMessageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_xml); // set the view that you want to display
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView myTextView = (TextView) findViewById(R.id.tv_1) // make sure the id is correct
myTextView.setText(message); // set the value
myTextView.setTextSize(40); // you can dynamically modify the text size
}