2014-01-11 164 views
0

我的应用程序只为ListView加载数据(不包含图像)。 有些东西我的应用程序无法启动。 我看logcat的,它显示消息:为什么我的应用程序不能启动?

01-11 14:58:52.598: E/JavaBinder(265): !!! FAILED BINDER TRANSACTION !!! 

我去设置 - >应用程序 - >选择我的应用程序,然后单击强制停止。它会运行正常。 为什么?如何解决这个问题?谢谢。

我的代码:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     handler2 = new Handler(); 

     dtTitle = new profileAdapter(this, R.layout.layoutrowtitle); 
     ListView lvTruyen = (ListView) findViewById(R.id.lvTruyen); 
     lvTruyen.setAdapter(dtTitle); 
     lvTruyen.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 
       DTO_Truyen dt = dtTitle.getItem(arg2); 
       Intent myinten = new Intent(MainActivity.this, 
         TruyenDetail.class); 
       Bundle b = new Bundle(); 
       b.putString("Id", dt.ID); 
       myinten.putExtras(b); 
       startActivityForResult(myinten, 0); 
      } 
     }); 

     showProccess(); 
     startThread(); 

    } 


public class profileAdapter extends ArrayAdapter<DTO_Truyen> { 

     public profileAdapter(Context context, int textViewResourceId) { 
      super(context, textViewResourceId); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      // TODO Auto-generated method stub 
      // return super.getView(position, convertView, parent); 
      View v = convertView; 
      ViewWraperDV mwp; 

      if (v == null) { 
       LayoutInflater l = getLayoutInflater(); 
       v = l.inflate(R.layout.layoutrowtitle, null); 
       mwp = new ViewWraperDV(v); 
       v.setTag(mwp); 
      } else { 

       mwp = (ViewWraperDV) convertView.getTag(); 
      } 

      TextView txtID = mwp.getLable(); 
      TextView txtTitle = mwp.getTitle(); 

      DTO_Truyen dt = this.getItem(position); 
      txtID.setText(dt.ID + ": "); 
      txtTitle.setText(dt.Title); 

      return v; 
     } 
    } 
+0

请发布您的代码和任何其他日志,以便我们可以看到可能发生的事情。我的代码上传了 – anddev84

+0

。它运行正常。但有些东西无法启动。 –

+0

发布你的profileAdapter类...是profileAdapter扩展ArrayAdapter? –

回答

0

通过你的代码没有内存问题,因为Raghunandan说,如果它的内存问题应该是内存不足的错误,也没有任何VM问题的方式。

您必须明白,在这里您使用的是一个适配器类,它负责填充ListView的自定义数据。

每个适配器类都应该从它的相应活动中获取数据(例如ArrayList),并通过它的构造函数获取当前上下文。 像:

MyAdapter adapter = new MyAdapter(context, arraylist_data); 

并用作列表视图或GridView控件的适配器,并使用setAdapter()把这个适配器对象。

而在你MyAdapter类,你应该与appropreate parameters.Like定义你的建构: 公共类MyAdapter延伸BaseAdapter { 私人语境mContext; private ArrayList mData;

public MyAdapter (Context mContext, ArrayList<DTO_Truyen> mData){ 
this.mContext = mContext; 
this.mData = mData; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
     //do any thing here... 
    } 
} 

当您getView()方法在当前位置获得的所有数据,并把自定义布局屁股以及任何反应中。

基本上这是在ListView中放置自定义布局和数据的方法。关于例外情况,Raghunandan和Gopal Rao已经解释。所以只要改变你写代码的方式就行了。

相关问题