我是这个Android开发的新手。我刚开始创建一个hello world应用程序。
我尝试设置背景图片并且工作正常。当我尝试在图像上添加文字时,它无效。
我尝试了以下方式。任何人都可以在我出错的地方帮助我。
in
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/andriod"
android:layout_gravity="center_vertical"
android:gravity="center_vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
HelloActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
//import android.widget.ImageView;
public class HelloActivity extends Activity {
// /** Called when the activity is first created. */
// @Override
// public void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
// }
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("This is the first andorid app");
setContentView(R.layout.main);
}
}
运行时显示背景图像,但“这是第一个andorid应用程序”未显示。
希望得到你的帮助
答案 0 :(得分:6)
首先,您需要在text文件中为textview提供一个id,以便可以在Java源代码中访问它(请注意以下XML中的android:id属性);
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/andriod"
android:layout_gravity="center_vertical"
android:gravity="center_vertical">
<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
现在在此textview中设置文本;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView = (TextView) findViewId(R.id.textView);
textView.setText("This is the first andorid app");
}
注意,如何从这里访问XML中声明的textview。
不是
TextView textView = new TextView(this);
这将创建一个新的textview。但我们需要的是
TextView textView = (TextView) findViewId(R.id.textView);
这将引用上面XML文件中声明的textview。
答案 1 :(得分:4)
您需要从当前内容视图中获取TextView。 在setContentView(..)之后添加这些行,还在布局
中为文本视图添加一个idTextView tv = (TextView)findViewById(...)
答案 2 :(得分:3)
您必须使用其唯一ID在布局文件中选择TextView,然后设置其属性。但是在你的代码中,你只需用文本创建一个文本视图,而不是将其放在视图中。
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("Your text here");