安卓 setText()报错

MainActivity.java:packagecom.example.text;importandroid.os.Bundle;importandroid.app.A... MainActivity.java:
package com.example.text;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
textView=(TextView)findViewById(R.id.textView);
textView.setText("GetOut");

setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

activity_main.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:orientation="vertical"
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=".MainActivity" >

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello_world" />

</LinearLayout>
logcat:
展开
 我来答
FluencyLovee
2014-01-28 · TA获得超过153个赞
知道答主
回答量:124
采纳率:0%
帮助的人:111万
展开全部
首先,xml中的控件都需要写在setcontentview后面:
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.textView);
textView.setText("GetOut");
其次,setContentView(R.layout.fragment_main);报错,看你是否修改了textview的id或者其他属性。可以贴下错误代码。
更多追问追答
追问

activity和fragment有什么区别?为何textview放在activity_main就有用?

追答
把xml中的tools:context=""这句话删掉试试,这句话基本无意义。
fragment是google新设定的一种view,目的是使整个程序碎片化,他拥有与acticity类似的生命周期。但是跟其他view一样,都是基于acticity的。
dakongyi5331
2014-01-28
知道答主
回答量:8
采纳率:0%
帮助的人:3万
展开全部
setContentView(R.layout.activity_main);这个是将布局加载到Activity中,只有加载完成,才能用findViewById对控件进行操作,不然会报空指针。看你的截图,Caused By,就知道了。望采纳
更多追问追答
追问
在intellij idea里,把TextView写进activity_main.xml里,成功了。但我写在fragment_main.xml里,再用setContentView(R.layout.fragment_main); 为什么会出错呢?
追答
你说的那个intellij idea我没用过。我一直都是Eclipse,刚才看了下 介绍,说那个有“程序员意图支持”及“智能代码”功能,我想可能是直接帮你把错误更改了,但是 为什么一个好使一个不好使,我就不得而知了。还有,你定义在fragment_main.xml里的那个 TextView的Id 是否重复了。Android里 控件Id是不允许重复的。如果重复 当然会报错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ca96620
2014-01-27
知道答主
回答量:24
采纳率:0%
帮助的人:10.8万
展开全部
textView=(TextView)findViewById(R.id.textView);
textView.setText("GetOut");
这2行代码都要放在setContentView(R.layout.activity_main);后面,给分吧。
追问
无效。intellij idea的问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鹤野雪枝2B
2014-01-27
知道答主
回答量:22
采纳率:0%
帮助的人:17万
展开全部
textView.setText("GetOut");放到setContentView(R.layout.activity_main);后面
追问
无效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式