freedom_wings 2015-12-13 14:44 采纳率: 21.1%
浏览 1427

安卓,fragmentTabHost中,使用自定义的view后就出错了,求指导

原本在tabspec里的setIndicator就使用简单的字符串,没事,已经完成了。

然后想试试这里使用自定义样式,就报了个nullpointerException

下面贴下代码:

package com.example.test_fragmenttaghost;

import android.os.Bundle;
import android.view.*;
import com.example.test_fragmenttaghost.Fragment1;
import com.example.test_fragmenttaghost.Fragment2;
import com.example.test_fragmenttaghost.Fragment3;
import android.widget.*;
import android.app.Activity;
import android.view.Menu;
import android.support.v4.app.*;
import android.widget.TabHost.*;

public class MainActivity extends FragmentActivity {
private FragmentTabHost tabhost;
Class[] fragmentclass={Fragment1.class,Fragment2.class,Fragment3.class};
String[] str={"标签1","标签2","标签3"};
private LayoutInflater inflater;
int[] pictureId={R.drawable.a1,R.drawable.a2,R.drawable.a3};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inflater=LayoutInflater.from(this);
tabhost=(FragmentTabHost)super.findViewById(R.id.fragmenttabhost);
tabhost.setup(this,getSupportFragmentManager(),R.id.tabcontent);
TabSpec tabspec;
int i;
for(i=0;i<3;i++)
{
tabspec=tabhost.newTabSpec("f"+i);
tabspec.setIndicator(getItemView(i));
tabhost.addTab(tabspec,fragmentclass[i],null);
tabhost.getTabWidget().getChildAt(i);
}

}


@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;
}

public View getItemView(int index)
{

    View v=inflater.inflate(R.layout.picture,null);
    ImageView img=(ImageView)super.findViewById(R.id.picture1);
    img.setImageResource(pictureId[index]);
    TextView tv=(TextView)super.findViewById(R.id.textview);
    tv.setText(str[index]);

    return v;
}

}

这里比原来的代码新增加的就getItemView那段,还有layoutInflater对象的声明和实例化,还有新增加了一个用于自定义样式的xml文件(即getItemView里的R.layout.picture),最多还有原来的setIndicator(str[i])改成了现在的setIndicator(getItemView(i));

错误应该源自这几个地方,但我怎么都想不出哪里null了,求指教。

  • 写回答

2条回答 默认 最新

  • devmiao 2015-12-13 14:53
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元
  • ¥15 数学建模数学建模少ai
  • ¥15 如何把LibreOffice添加到自定义层中
  • ¥35 这个等效电路图是什么意思?(答疑)(有没有不是chat的,我就是在chat搜不到才来问的,chat还开了VIP)(可以追加酬金)
  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?