0

次のコードを見てください

DatabaseHandler.java

データの取得に使用されるコード

public List<String> getAllBranches() {
        // TODO Auto-generated method stub

        String selectQuery = "select city from BranchNetwork";

        Cursor cursor = database.rawQuery(selectQuery, null);
        List <String>branches = new ArrayList<String>();

        if(cursor.isFirst())
        {
            do
            {

            }
            while(cursor.moveToNext());

            Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show();
        }

        return branches;
    }

データの挿入に使用されるコード

public String insertData(String city, String streetAddress,String phoneNumber1, String phoneNumber2, String email) 
    {
        String insertQuery = "insert into BranchNetwork ('city','streetAddress','phoneNumber1','phoneNumber2','email') values('"+city+"','"+streetAddress+"','"+phoneNumber1+"','"+phoneNumber2+"','"+email+"');";




        try
        {  
            database.execSQL(insertQuery);


            return "Data Successfully Inserted";

        }
        catch(Exception e)
        {
            Toast.makeText(context, "Exception: "+e.getMessage(), Toast.LENGTH_LONG).show();
            return "Data Insertion Failed";
        }

    }

フォーム.java

最初のアクティビティ。ここでは、データを取得してデータを挿入します。以下は、データを取得する方法です

public class Form extends Activity {
    private List<String>branches = new ArrayList<String>();
        private DatabaseConnector databaseConnector;
    String[]arr;


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

            databaseConnector = DatabaseHandler.getInstance(this);
            databaseConnector.createConnection();

            branches = databaseConnector.getAllBranches();

             arr = branches.toArray(new String[branches.size()]);
    }
}

しかし、私は何も得ません!DatabaseHandler.java でToast、コードが取得されたときにメッセージを生成する場所を作成しました。しかし、それは何も生成していません!データを にロードしていますListViewが、これも空です! どうしてこれなの?助けてください!

PS: 以下は、DatabaseHandler の挿入面である DatabaseConnector.java です。

package com.example.esoftcallmanager;

import java.util.List;

import android.content.Context;

public interface DatabaseConnector 
{
    public void createConnection();
    public void closeConnection();
    public String getPhoneNumber();
    public String insertData(String city, String streetAddress, String phoneNumber1, String phoneNumber2, String email);
    public List<String>getAllBranches();

}
4

5 に答える 5

2

データベースにすでにデータがあることが確実な場合は、次のように変更if(cursor.isFirst())してみてくださいif(cursor.moveToFirst())

于 2013-02-14T07:56:53.853 に答える
1

これがうまくいくことを願っています。

public List<String> getAllBranches() {
            // TODO Auto-generated method stub

            String selectQuery = "select city from BranchNetwork";
            Cursor cursor = database.rawQuery(selectQuery, null);
            List <String>branches = new ArrayList<String>();

             if(cursor != null){
              cursor.moveToFirst();

               Toast.makeText(context, "Data Retrieved: ", Toast.LENGTH_LONG).show();

              do
                {

                }
                while(cursor.moveToNext());



             }



                return branches;
        }
于 2013-02-14T08:02:29.293 に答える
1

cursor.moveToFirst()条件を試してください

if(cursor.moveToFirst())
    {
        do
        {

        }
        while(cursor.moveToNext());

        Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show();
    }
于 2013-02-14T07:58:43.223 に答える
1

これは、データに対して実際には何もしていないためです。

まず、カーソルの位置を最初に移動する必要があります: cursor.moveToFirst() その後、実行しようとしているときに while ループを開始できます。

第二に、実際に List ブランチにデータを配置することはありません。最初にカーソルからのデータをそこに配置する必要があります。

于 2013-02-14T08:00:34.210 に答える
0

リストの配列にデータを追加するのを忘れています。以下のようにしてみてください。

  String selectQuery = "select city from BranchNetwork";
    Cursor cursor = database.rawQuery(selectQuery, null);
    List <String> branches = new ArrayList<String>();
    String str=null;
    cursor.moveToFirst();
        do
       {
         str= m_cursor.getString(m_cursor.getColumnIndex("city"));
          branches.add(str);
       }
        while(cursor.moveToNext());
        Toast.makeText(context, "Data Retrieved: "+branches.get(1), Toast.LENGTH_LONG).show();
    }
        return branches;
于 2013-02-14T08:02:30.417 に答える