Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试滚动列表视图时重新启动应用程序_Android_Listview - Fatal编程技术网

Android 尝试滚动列表视图时重新启动应用程序

Android 尝试滚动列表视图时重新启动应用程序,android,listview,Android,Listview,我正在开发使用ListActivity的程序。所以,当我向下滚动listview时,它会导致重新启动应用程序并从第一个活动开始。我的代码如下: package com.daarkoob.food; import android.app.ListActivity; import android.os.Bundle; import android.view.Window; import java.util.ArrayList; import android.content.Context; im

我正在开发使用ListActivity的程序。所以,当我向下滚动listview时,它会导致重新启动应用程序并从第一个活动开始。我的代码如下:

package com.daarkoob.food;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.Window;

import java.util.ArrayList;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class FoodListActivity extends ListActivity {
    private ArrayList<Food> M_foods = new ArrayList<FoodListActivity.Food>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foodlist);

        SQLiteDatabase sqliteDatabase = SQLiteDatabase.openOrCreateDatabase(
                "/data/data/" + this.getPackageName() + "/data.db", null);

        Cursor cursor = sqliteDatabase.rawQuery("SELECT * FROM FOOD", null);
        cursor.moveToFirst();

        while (!cursor.isAfterLast()) {
            M_foods.add(new Food(cursor.getString(2), cursor.getString(1)));
            cursor.moveToNext();
        }

        FoodAdapter adapter = new FoodAdapter(this);
        setListAdapter(adapter);

        cursor.close();
        sqliteDatabase.close();
    }

    public class Food {
        public Food(String foodName, String foodType) {
            this.M_foodName = foodName;
            this.M_foodType = foodType;
        }

        String M_foodName;
        String M_foodType;
    }

    public class FoodAdapter extends ArrayAdapter<Food> {
        private Context M_context = null;

        public FoodAdapter(Context context) {
            super(context, R.layout.foodlist_view_item, M_foods);
            this.M_context = context;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            if (convertView == null) {
                LayoutInflater layoutInflater = (LayoutInflater) M_context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                convertView = layoutInflater.inflate(
                        R.layout.foodlist_view_item, parent, false);
            }
            TextView textView = (TextView) convertView
                    .findViewById(R.id.foodlist_view_item_textview);

            textView.setText(M_foods.get(position).M_foodName);

            return convertView;
        }
    }

}
<?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"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/foodlist_title_bar"
        android:layout_width="match_parent"
        android:layout_height="40dip"
        android:background="@drawable/textlines"
        android:gravity="right|center_vertical"
        android:text="@string/foodlist_titlebar_text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="@android:color/transparent"
        android:dividerHeight="1dip" >
    </ListView>

</LinearLayout>
foodlist.xml
如下所示:

package com.daarkoob.food;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.Window;

import java.util.ArrayList;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class FoodListActivity extends ListActivity {
    private ArrayList<Food> M_foods = new ArrayList<FoodListActivity.Food>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.foodlist);

        SQLiteDatabase sqliteDatabase = SQLiteDatabase.openOrCreateDatabase(
                "/data/data/" + this.getPackageName() + "/data.db", null);

        Cursor cursor = sqliteDatabase.rawQuery("SELECT * FROM FOOD", null);
        cursor.moveToFirst();

        while (!cursor.isAfterLast()) {
            M_foods.add(new Food(cursor.getString(2), cursor.getString(1)));
            cursor.moveToNext();
        }

        FoodAdapter adapter = new FoodAdapter(this);
        setListAdapter(adapter);

        cursor.close();
        sqliteDatabase.close();
    }

    public class Food {
        public Food(String foodName, String foodType) {
            this.M_foodName = foodName;
            this.M_foodType = foodType;
        }

        String M_foodName;
        String M_foodType;
    }

    public class FoodAdapter extends ArrayAdapter<Food> {
        private Context M_context = null;

        public FoodAdapter(Context context) {
            super(context, R.layout.foodlist_view_item, M_foods);
            this.M_context = context;
        }

        @Override
        public View getView(final int position, View convertView,
                ViewGroup parent) {
            if (convertView == null) {
                LayoutInflater layoutInflater = (LayoutInflater) M_context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                convertView = layoutInflater.inflate(
                        R.layout.foodlist_view_item, parent, false);
            }
            TextView textView = (TextView) convertView
                    .findViewById(R.id.foodlist_view_item_textview);

            textView.setText(M_foods.get(position).M_foodName);

            return convertView;
        }
    }

}
<?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"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/foodlist_title_bar"
        android:layout_width="match_parent"
        android:layout_height="40dip"
        android:background="@drawable/textlines"
        android:gravity="right|center_vertical"
        android:text="@string/foodlist_titlebar_text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:cacheColorHint="@android:color/transparent"
        android:dividerHeight="1dip" >
    </ListView>

</LinearLayout>

出什么事了?为什么会重新启动


提前感谢:)

您的getCount()方法在哪里。您可以发布错误日志。
LogCat
未检测到任何错误。
重新启动应用程序并从第一个活动开始的确切原因是什么?第一个活动是什么?@Luksprog它会导致我的应用程序被终止并重新启动。如果由于异常而导致
强制关闭
,请发布stacktrace,其中包含来自logcat的异常。