1

我确定我已经设置了图片和 xml。我在安卓模拟器上运行我的应用程序,它只是弹出一个窗口显示应用程序停止运行。但是在删除包括 在内的图标部分后,res.getDrawable(R.drawable.tab_icon1)该应用程序运行正常。res.getDrawable(R.drawable.tab_icon2)res.‌​getDrawable(R.drawable.tab_icon3)

public class ActionBar extends Activity implements OnClickListener {

TabHost th;
TextView showResult;
long start, stop;
Resources res;

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_action_bar);
    th = (TabHost) findViewById(R.id.tabhost);
    th.setup();
    Button newTab = (Button) findViewById(R.id.bAddTab);
    Button start = (Button) findViewById(R.id.bStart);
    Button stop = (Button) findViewById(R.id.bStop);
    showResult = (TextView) findViewById(R.id.textView1);
    newTab.setOnClickListener(this);
    start.setOnClickListener(this);
    stop.setOnClickListener(this);
    TabSpec specs = th.newTabSpec("tab1");
    specs.setContent(R.id.tab1);
    specs.setIndicator("Stop Watch", res.getDrawable(R.drawable.tab_icon1));
    th.addTab(specs);
    specs = th.newTabSpec("tab2");
    specs.setContent(R.id.tab2);
    specs.setIndicator("Add Tab", res.getDrawable(R.drawable.tab_icon2));
    th.addTab(specs);
    specs = th.newTabSpec("tab3");
    specs.setContent(R.id.tab3);
    specs.setIndicator("Blank", res.getDrawable(R.drawable.tab_icon3));
    res = getResources();
    th.addTab(specs);
}
4

1 回答 1

0

我可以看到的一件简单的事情是,您应该在所有三个位置res = getResources();使用变量之前进行定义。res现在您正在使用它,在定义它之前,这可能会引发异常。执行以下操作:

//....
res = getResources();
specs.setContent(R.id.tab1);
specs.setIndicator("Stop Watch", res.getDrawable(R.drawable.tab_icon1));
th.addTab(specs);
specs = th.newTabSpec("tab2");
specs.setContent(R.id.tab2);
specs.setIndicator("Add Tab", res.getDrawable(R.drawable.tab_icon2));
th.addTab(specs);
specs = th.newTabSpec("tab3");
specs.setContent(R.id.tab3);
specs.setIndicator("Blank", res.getDrawable(R.drawable.tab_icon3));
//....

如果您需要进一步的帮助,请发布 LogCat 信息。希望这可以帮助。

于 2013-07-19T00:01:22.990 回答