我试图为我的应用创建一个简单的登录屏幕,并且我已经实现了所有内容,只需要显示TextView
中之前活动传递的信息。这是来自活动的onCreate
方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
/* Get the message from the intent
Intent intent = getIntent();
int ID = intent.getIntExtra("USER_ID", -1);
*/
// Create the text view
TextView txt = (TextView) findViewById(R.id.txtMenu);
txt.setText("text"); // + Integer.toString(ID));
}
这里是片段xml的内容:
<RelativeLayout 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="com.rma.runner.MenuActivity$PlaceholderFragment" >
<TextView
android:id="@+id/txtMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
但是,当我使用开发人员教程中的代码时,它似乎有效,但我想以图形方式安排所有内容,然后动态更改活动中的文本:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the message from the 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);
// Set the text view as the activity layout
setContentView(textView);
}
有什么明显的东西我不见了吗?
提前致谢。
答案 0 :(得分:3)
更改此
setContentView(R.layout.activity_menu);
到
setContentView(R.layout.fragment_main);
答案 1 :(得分:1)
您引用了来自fragment_main.xml
的内容,您将获得null,因为在您使用的活动中activity_menu
因此,在txt
布局中使用activity_menu
或在片段的onCreateView
中使用视图
View v = inflater.inflate(R.layout.fragment_main, container, false);
然后使用视图查找textview
TextView txt= (TextView)v.findViewById(R.id.txtMenu);
即。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_main, container, false);
TextView txt= (TextView)v.findViewById(R.id.txtMenu);
txt.setText("text"); return v;
}