2012-03-06 16 views
0

私はまだ非常にアプリケーション開発に新しいので、これはおそらく非常にばかげた質問ですが、私は正しい答え(またはJavaの非常に限られた知識で理解できる少なくとも1つ)を見つけることができないようです。空白の画面を返すカスタムアレイアダプタ?

私はListRowというカスタムArrayAdapterを使用しています。通常のアクティビティではうまく動作しますが、ListActivityでは動作しません。

以下は、私が使用しているコードのサンプルです。どんな助けでも大歓迎で、あなたはトンを助けてくれるでしょう!

ListView mListview; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setListAdapter(new ListRow(this, THEME_NAMES, THEME_ICONS)); 
    getListView().setTextFilterEnabled(true); 
} 

public class ListRow extends BaseAdapter { 
    private Context mContext; 
    private String[] mThemeNames = THEME_NAMES; 
    private int[] mThemeIcons = THEME_ICONS; 


    public ListRow(Context c, String[] t, int[] i) { 
     mContext = c; 
     mThemeNames = t; 
     mThemeIcons = i; 
     mListview=(ListView)findViewById(R.id.list); 
    } 

    @Override 
    public int getCount() { 
     return mThemeNames.length; 
    } 

    @Override 
    public Object getItem(int arg0) { 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View converView, ViewGroup parent) { 
     View List; 
     if(converView==null){ 
      List=new View(mContext); 
      LayoutInflater mLayoutinflater=getLayoutInflater(); 
      List=mLayoutinflater.inflate(R.layout.list_view, parent, false); 
     } else { 
      List = (View)converView; 
     } 
     ImageView imageView = (ImageView)List.findViewById(R.id.image); 
     TextView textView = (TextView)List.findViewById(R.id.text); 
     imageView.setImageResource(mThemeIcons[position]); 
     textView.setText(mThemeNames[position]);  
     return List; 
    } 
} 

そして、ここであなたは、私と一緒に小さな単語を使用してくださいすることができた場合、私は、各リスト項目

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    <ImageView 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:scaleType="center" 
    android:id="@+id/image" 
    android:layout_alignParentLeft="true" 
    android:contentDescription="@string/preview" /> 
    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/image" /> 
</RelativeLayout> 

のために定義したレイアウトだ笑、Javaは私のために理解することは困難であることが判明しました、できるだけ多く説明するようにしてください。前もって感謝します!

FIGUREED IT OUT! だから、ちょっと地獄の中にあなたを置くだけだ。私のリストアイテムを含むレイアウトは、list_viewではなくlist_itemと呼ばれます。しかし、私はここでたくさんのことを学んだので、みなさん大変ありがとうございます!私はあなたのお手伝いをすることができる方法があることを望みます...

この質問の道徳的?あなたのレイアウトの名前を確認してください!

+0

このリンクはあなたに役立ちます。 ]:http:// stackoverflow。com/questions/7193741/need-help-for-on-click-listener-for-android-custom-listview – sagar

+0

チップをありがとうが、私が言ったように、私は非常にJavaに新しいので、私が見ているものをほとんど知っていないので私を助けようとしています...もっと具体的な例を探してみましょう – Andrew

答えて

1

あなたは

setListAdapter(new ListRow(this, your_theme_names_array, your_theme_icon_array)); 

あなたはこのためにArrayAdapterを使用する必要がいけない、このようにアダプタを設定する必要があり、それが編集した文字列

のアレイ用のアダプタを作成するためのものです

レイアウトXMLには問題はありません。

  • は、あなたが質問に与えられたレイアウトにするかどうかR.layout.list_viewポイントをチェックしてください1

    チェックリストで1下記のリストを確認してください。

  • アダプターsetListAdapterを設定してみてください(新しいListRow(this、String [] {}、int [] {}));空白の画面が表示されます(空白の画面が表示された場合、THEME_NAMESまたはTHEME_ICONSのいずれかがnullまたはその値がnullであることを意味します)
  • imageView.setImageResource(mThemeIcons [position]);および textView.setText(mThemeNames [position]);空白の画面も表示されます(R.layout.list_viewにR.id.imageまたはR.id.textが含まれていない場合)
+0

'getView()'から 'List = new View(mContext); –

+0

List = new View(mContext)が必要ですconvertViewがnullの場合 –

+1

いいえ、彼はリソース 'R.layout.list_view'からビューを膨張させているので、別の' View'オブジェクトを作成する必要はありません。 –

0

ArrayAdapterにmListViewを追加する必要があります。 setListAdapter.Onlyリストビューの内容は、customadapterで述べたパターンで表示されます。リストビューで要素を追加した場所はわかりません。

+0

私はそれが間違っている場合は、どこに行かなければならないと思われるかをアドバイスしてください – Andrew

関連する問題