我列出的活動是空白的,不會引發錯誤或異常。它只是坐在那裏,什麼也不做。空白列表活動,ListView對象不爲空
我的數據庫不應該是空的,有一些條目。
public class ListedActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout mContainer = (LinearLayout) inflater.inflate(R.layout.activity_list, null);
ListView listView = (ListView) mContainer.findViewById(R.id.listedactivity_list_view);
DBHelper dbHelper = new DBHelper(getApplicationContext());
ArrayList<MyLayoutObject> b = dbHelper.getAllResults();
MyAdapter a = new MyAdapter(this, b);
listView.setAdapter(a);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
Intent intent = new Intent(ListedActivity.this, ResultsActivity.class);
intent.putExtra("position", position);
intent.putExtra("id", id);
startActivity(intent);
}
}
);
}
}
活動列表應該寫出我的數據庫中的所有結果。這是.xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="smart.tuke.sk.makac.ListedActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#eeeeee"
android:id="@+id/listedactivity_list_view" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@android:id/empty"
android:text="@string/no_data"
android:visibility="gone" />
</LinearLayout>
這是我的行佈局。每排應該看起來像這樣。它的.xml如下。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="61dp"
android:orientation="vertical">
<TextView
android:id="@+id/date_recorded"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#111111" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/duration_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/distance_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/pace_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/calories_recorded" />
</LinearLayout>
</LinearLayout>
MyLayoutObject是5個字符串與干將,僅此而已
幫幫我,溢出克諾比,你是我唯一的希望!
編輯:適配器代碼
class MyAdapter extends BaseAdapter{
private LayoutInflater inflater;
private ArrayList<MyLayoutObject> objects;
private class ViewHolder {
TextView date;
TextView duration;
TextView distance;
TextView pace;
TextView calories;
}
MyAdapter(Context context, ArrayList<MyLayoutObject> objects) {
inflater = LayoutInflater.from(context);
this.objects = objects;
}
public int getCount() {
return objects.size();
}
public MyLayoutObject getItem(int position) {
return objects.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.row_layout, null);
holder.date = (TextView) convertView.findViewById(R.id.date_recorded);
holder.distance = (TextView) convertView.findViewById(R.id.distance_recorded);
holder.duration = (TextView) convertView.findViewById(R.id.duration_recorded);
holder.pace = (TextView) convertView.findViewById(R.id.pace_recorded);
holder.calories = (TextView) convertView.findViewById(R.id.calories_recorded);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.date.setText(objects.get(position).getDate());
holder.duration.setText(objects.get(position).getDuration());
holder.distance.setText(objects.get(position).getDistance());
holder.pace.setText(objects.get(position).getPace());
holder.calories.setText(objects.get(position).getCalories());
return convertView;
}
}
而且適配器的.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="61dp"
android:orientation="vertical">
<TextView
android:id="@+id/date_recorded"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#111111" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/duration_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/distance_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/pace_recorded" />
<TextView
android:layout_width="345dp"
android:layout_height="wrap_content"
android:id="@+id/calories_recorded" />
</LinearLayout>
</LinearLayout>
嘗試轉移listview.setAdapter後的setContentView(R.layout.activity_list) – Swr7der
我轉移他們的活動仍是空白 –