这应该很简单,但让我疯狂。
我的布局中有以下内容,而不是问题。
<TextView
android:id="@+id/birdinfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#00009c"
android:text="The Robin is a popular bird"
/>
然后我将这些数组设置为我拥有的字符串资源列表
private Integer[] DetailIds = {
R.string.barnaclegoose,
R.string.barnowl,
R.string.bewicksswan,
R.string.blackbird,
R.string.blackcap_male};
所以我只是想这样做!
TextView detail = (TextView)findViewById(R.id.birdinfo);
detail.setText(DetailIds[0]);
setContentView(R.layout.main);
但是这会导致力量关闭错误。
字符串资源看起来像这样(当然没有页眉和页脚信息
<string name="barnaclegoose">What a wonderful goose!</string>
如果我将资源直接用于资源
,则添加到此问题detail.setText(R.string.barnaclegoose);
例如,我仍然得到一个null异常!我确定我以前做过这个,但也许我错过了明显的???
任何想法都赞赏。
(Eclipse,Android 1.5,1.5版仿真器)
答案 0 :(得分:1)
我意识到这已经很老了,但它出现在搜索中......无论如何,你需要在setContentView()
等之前致电findViewById()
:
setContentView(R.layout.main);
TextView detail = (TextView)findViewById(R.id.birdinfo);
detail.setText(DetailIds[0]);
答案 1 :(得分:1)
您的问题是此行mCar
首先,您必须定义此行,然后setText您的textView
答案 2 :(得分:0)
感谢您的回答。但是,如果你的意思是R.string.barnaclegoose,这是指向资源中字符串本身的ID的整数值。
无论如何,我终于通过创建内联视图而不是使用资源视图来实现它。
例如
TextView t= new TextView(ctx);
t.setId(2);
t.setTextColor(Color.BLACK);
t.setText(DetailIds[bird]);
mLinearLayout.addView(t,params);
mLinearLayout.setBackgroundColor(Color.WHITE);
setContentView(mLinearLayout);
这很有效。