2010-12-18 37 views
1

こんにちは私のアンドロイドアプリは、ListActivityのonCreateメソッドを呼び出して新しいAsynchTaskを作成し、Webサービスを呼び出し、すべてのものをWebサービスから来たArrayListデータに入れた後、Intentを持つ別のアクティビティから呼び出されたリストアクティビティをこのアクティビティに持ちますcustomArrayAdapterのgetViewを実装しようとするとwierdが表示されることがあります。時にはリストの内容が表示されないことがあります。時にはscroll.HereがカスタムアダプタのgetViewメソッドです。 (レイアウト=のTextView +リストビュー)ListViewでカスタムarrayadapterが正しく表示されませんか?

class EntryDetailsAdapter extends ArrayAdapter<Entry>{ 

     private ArrayList<Entry> entryDetails; 
     private Entry tempEntry; 

     public EntryDetailsAdapter(Context context, int textViewResourceId, 
     List<Entry> objects) { 
     super(context, textViewResourceId, objects); 
     // TODO Auto-generated constructor stub 
     entryDetails = (ArrayList<Entry>) objects; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     View mView = convertView; 

     if(mView == null){ 

     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     mView = inflater.inflate(R.layout.entry_rows, null); 

     } 

     tempEntry = entryDetails.get(position); 
     //data is fine but problem is while occur while showing data 

     if(tempEntry != null){ 
     //get the textview from list row xml that i defined 
     TextView textView = (TextView) findViewById(R.id.entryRowTextView); 
     if(textView != null){ 
     //i dont know why but this sometimes giving null so check 
     textView.setText(tempEntry.getEntryContent()); 
     } 
     } 
     return mView; 
     } 
    } 

[注]問題かもしれませんthis questionに似ていますが、あなたのデータは、Webサービスからプールされたリストに表示されるようにと言ったので、私は解決策

答えて

0

試してみてください。

TextView textView = (TextView)mView.findViewById(R.id.entryRowTextView); 

特定の行のTextViewのフィールドを取得するとき、あなたがMVIEWを欠落していました。

+0

を使用してみてください私の問題を解決する答えをありがとう –

0

を見つけるcouldntのデータがまだロードされておらず、すでにデータにアクセスしようとしている可能性がありますか?リストアダプターを設定する前に、サービスからデータをロードするのを待っていますか?

+0

あなたは既にプールされたデータをチェックしていると言いましたが、奇妙な方法でリストを表示していますが、私は問題がgetViewメソッドについてだと思っています –

+0

dhaag23が言ったように、TextView textView = )mView.findViewById(R.id.entryRowTextView)。また、より効率的なリストを取得するには、ViewHolderパターン – dstefanox

関連する問題