2016-03-05 112 views
-3

我嘗試使用領域的內容做一個列表視圖,但問題是,當我在模擬器中打開活動時,什麼也沒有顯示,只是白屏。Android - listView不顯示

代碼是

public class ListActivity extends AppCompatActivity { 

ListView list; 
Realm realm; 
Button button; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list_of_items); 

    realm = Realm.getDefaultInstance(); 

    RealmResults<ArticleList> results = realm.where(ArticleList.class).equalTo("category", "Танковые сражения").findAll(); 

    ListActivityListAdapter adapter = new ListActivityListAdapter(this, results); 
    list = (ListView) findViewById(R.id.listactivity_listview); 
    list.setAdapter(adapter); 

    button = (Button) findViewById(R.id.button); 

} 

} 

public class ListActivityListAdapter extends ArrayAdapter<String> { 

private final Activity context; 
private final RealmResults<ArticleList> articleList; 

public ListActivityListAdapter(Activity context, RealmResults<ArticleList> articleList) { 
    super(context, R.layout.listview_listactivity_item); 
    this.context = context; 
    this.articleList = articleList; 
} 

public View getView(int position,View view,ViewGroup parent) { 

    LayoutInflater inflater=context.getLayoutInflater(); 
    View rowView=inflater.inflate(R.layout.listview_listactivity_item, null, true); 

    TextView title = (TextView) rowView.findViewById(R.id.listview_item_title); 
    TextView subtitle = (TextView) rowView.findViewById(R.id.listview_item_subtitle); 
    ImageView image = (ImageView) rowView.findViewById(R.id.listview_item_imageView); 

    ArticleList item = articleList.get(position); 

    title.setText(item.getTitle()); 
    subtitle.setText(item.getSubtitle()); 

    String imageName = item.getImage(); 
    File imageFile = ImageStorage.getImage(imageName, getContext()); 

    Bitmap bitmap = null; 

    try { 
     bitmap = BitmapFactory.decodeFile(context.getFilesDir() + "/tanks/" + imageName + ".jpg"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    image.setImageBitmap(bitmap); 

    return rowView; 

} 
} 

activity_list_of_items.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.example.me.demo2.ListActivity" 
tools:showIn="@layout/listview_main_list"> 

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/listactivity_listview" 
    android:layout_gravity="center_horizontal|top" 
    /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="164dp" /> 

listview_listactivity_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="213dp" 
    android:id="@+id/listview_item_imageView" 
    android:layout_gravity="center_horizontal|top" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Text" 
    android:id="@+id/listview_item_title" 
    android:paddingTop="100dp" 
    android:layout_gravity="center_horizontal|top" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Text" 
    android:id="@+id/listview_item_subtitle" 
    android:paddingTop="150dp" 
    android:layout_gravity="center_horizontal|top" /> 

我做錯了什麼?

+1

你是否從db獲得任何結果? –

+0

是的,獲取成功,我可以在控制檯中打印出數據。 –

+0

更改擴展AppCompatActivity以擴展活動 – user3515851

回答

2

我想你錯過了getCount()方法在ArrayAdapter。另外,不要忘記所有你壓倒一切的方法的@Override註釋。

0

嘗試adapter.notifyDataChanged()list.setAdapter(adapter);