2016-05-07 12 views
0

listViewにいくつかの項目を表示しようとしていますが、画面に表示されません。 これは単なるダミーの情報ですが、まだ動作していません。私はチュートリアルの束を見ようとしましたが、何も見つかりませんでした。ここでListViewに項目を表示

はxmlファイル

<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="0dp" 
android:paddingRight="0dp" 
android:paddingTop="0dp" 
android:paddingBottom="0dp" 
android:fitsSystemWindows="true" 
android:id="@+id/container" 
tools:context="com.example.pedrofialho.musicristo.SearchActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/list" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="55dp" /> 

</RelativeLayout> 

とここにあるJavaコードが画面に

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search_actvity); 
    container = (ViewGroup) findViewById(R.id.container); 
    LayoutInflater inflater = LayoutInflater.from(this); 
    View rootView = inflater.inflate(R.layout.listview_search,container,false); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    list = (ListView) rootView.findViewById(R.id.list); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    String[] items = {"Comunhão","Passo a Passo","Tudo bem?","Esta lista não tem sentido"}; 
    mArrayList = new ArrayList<>(Arrays.asList(items)); 
    mArrayAdapter = new ArrayAdapter<>(this, R.layout.activity_search_actvity, R.id.list, mArrayList); 
    list.setAdapter(mArrayAdapter); 
} 

でそれだけで白い画面は何も表示されません。 は

+0

XMLからListViewを削除し、TextViewにテキストを入れて見えるかどうか確認してください。 – Nabin

答えて

1

Hereにより説明したように

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/list" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="55dp" /> 

</RelativeLayout> 

はArrayAdapter初期の適切な方法です。たとえば、あなたはレイアウトを提供する必要があります。 TextViewあなたはこのような何かにnew ArrayAdapter...で行を変更する必要がありますので、(あなたがテキストを表示したい場合):は今、あなたのアダプタが活動、ないアイテムのレイアウトのレイアウトを取得しているため、mArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mArrayList); ...
各項目にカスタムレイアウトを使用する必要がある場合は、そのIDとTextViewのIDを渡す必要があります。
より複雑なアイテムビューが必要な場合は、ArrayAdapterまたはBaseAdapterクラスのいずれかを拡張して、アイテムビューを作成することができます。

1
View rootView = inflater.inflate(R.layout.listview_search,container,false); 

も、現在のビュー階層のコンテナ部分に追加するか、現在のコンテンツ(再びsetContentViewを呼び出す)に代わる、あなたが明示的にそれを置くまで、画面ではなく、新しい画面を、膨らむ事前にありがとう。あなたが投稿したレイアウトに応じて、activity_search_actvity.xml私はすでにListViewが含まれていると仮定して、inflaterを取り除き、setContentView(R.layout.activity_search_actvity);で設定したレイアウトのオブジェクト部分を取得するために単にfindViewByIdを使用します。また、間違ったパラメータでArrayAdapterをインスタンス化しました。 2番目のパラメータはlistのアイテムを使用するレイアウトで、3番目のパラメータはTextViewidで、データセットを表示します。

0

使用この

ArrayAdapter <String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,getResources().getStringArray(R.array.array); 

はそれにリストビューを添付することを忘れないでください。

ListView listView=getListView();//Your activity shoudl extends ListActivity 
listView.setAdapter(adapter); 
関連する問題