从数组问题中保存的字符串资源设置textview文本

时间:2010-06-29 11:12:59

标签: android eclipse textview

这应该很简单,但让我疯狂。

我的布局中有以下内容,而不是问题。

<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版仿真器)

3 个答案:

答案 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);

这很有效。