当前位置: 代码迷 >> Android >> gridview显示不出来,
  详细解决方案

gridview显示不出来,

热度:75   发布时间:2016-04-28 04:52:03.0
gridview显示不出来,求救。
做了个小程序,其中布局采用了gridview,代码如下:

public class HomeActivity extends Activity {
private TabHost mHomeTabhost;
private static final String HOME_TAG = "homedebug";

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
try {
mHomeTabhost = (TabHost) this.findViewById(R.id.home_tabhost);
mHomeTabhost.setup();
Log.i(HOME_TAG, "这里");
mHomeTabhost.addTab(mHomeTabhost.newTabSpec("tab1")
        .setIndicator(getResources().getString(R.string.category_title_hot))
.setContent(R.id.hot_tab));
mHomeTabhost.addTab(mHomeTabhost.newTabSpec("tab2")
      .setIndicator(getResources().getString(R.string.category_title_jobSearch))
.setContent(R.id.job_tab));
mHomeTabhost.addTab(mHomeTabhost.newTabSpec("tab3")
             .setIndicator(getResources().getString(R.string.category_title_career))
.setContent(R.id.article_tab));
}
catch(Exception exp) {
exp.printStackTrace();
Log.d("Exception", exp.getMessage())
}
ArrayList<HashMap<String, Object>> hotjob_list = fillList();

SimpleAdapter simAdapter = new SimpleAdapter(this, hotjob_list, R.layout.hotjob, 
new String []{"company", "title"},
new int []{R.id.hotjob_company, R.id.hotjob_title});
GridView gridView = (GridView)findViewById(R.id.job_hot);
try {
gridView.setAdapter(simAdapter);  //没有实例化的原因?
/*Log.i("绑定监测", "绑定完毕");*/
}

catch(Exception exp) {
exp.printStackTrace();
Log.d("gridview_Exception", exp.getMessage());
}
}

通过debug查看变量,simAdapter里面的数据填充应该是成功的,直至gridView.setAdapter(simAdapter)前程序运行正常。但是进入这一句后似乎主线程就被挂起了,无法往下执行,模拟器上的界面则停留在上一个Activity上,并一闪一闪的。



这是debug窗口的截图。

下面是logcat:
03-28 14:33:22.106: I/ActivityManager(627): START {cmp=com.findajob.zhilaizhiwang/.HomeActivity} from pid 1148
03-28 14:33:22.635: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:22.643: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:22.763: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:23.143: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:23.143: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:23.254: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:23.425: I/homedebug(1148): 这里
03-28 14:33:23.644: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:23.644: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:23.754: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:24.214: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:24.214: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:24.624: D/dalvikvm(1148): GC_CONCURRENT freed 56K, 2% free 9414K/9543K, paused 29ms+5ms
03-28 14:33:24.714: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:24.744: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:24.744: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:24.814: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:24.994: D/dalvikvm(627): GC_CONCURRENT freed 372K, 14% free 11228K/12999K, paused 11ms+32ms
03-28 14:33:25.294: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:25.294: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:25.334: D/dalvikvm(1148): threadid=1: still suspended after undo (sc=1 dc=1)
03-28 14:33:25.344: I/dalvikvm(1148): Wrote stack traces to '/data/anr/traces.txt'
03-28 14:33:25.865: I/Process(627): Sending signal. PID: 1148 SIG: 3
03-28 14:33:25.865: I/dalvikvm(1148): threadid=3: reacting to signal 3
03-28 14:33:25.925: D/dalvikvm(1148): threadid=1: still suspended after undo (sc=1 dc=1)

我看到这个提示threadid=1: still suspended after undo (sc=1 dc=1),不断出现,似乎是主线程被挂起了。但是undo(sc =1 dc=1)不知道是什么意思,百度搜不到,真怪。

请各位XDJM指教,不胜感激!

------解决方案--------------------
出现了anr导致
建议LZ在这句话后面
private static final String HOME_TAG = "homedebug";
声明下private GridView gridView ;

然后onCreate 方法gridView = (GridView)findViewById(R.id.job_hot);

在来gridView.setAdapter(simAdapter);