Заполнение ListView из базы данных SQLite - PullRequest
0 голосов
/ 31 января 2011
public class ConnectDatabase extends Activity {
    private SimpleDBAdapter mDbHelper;
    private ListView list;
    private String[] values;
    private String[] list1;
    private int i=0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        list=(ListView )findViewById(R.id.simpleListView);

        mDbHelper = new SimpleDBAdapter(ConnectDatabase.this);
        mDbHelper.createDatabase();
        mDbHelper.open();
        values = mDbHelper.getEditTextValue();
        mDbHelper.close();

        for(i=0;i<10;i++) {
            String tempvalue;
            tempvalue=values[i];
            list1[i]=tempvalue;
            Log.v("log_tag"," tempvalue   "+tempvalue);
            Log.v("log_tag", "list1 is"+list1[i]);

            //Log.v("log_tag"," list1"+list1[i]); 
        }

        list.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values));

        //list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

        //list.setTextFilterEnabled(true);

        list.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view, 
                    int position, long id) {
                // When clicked, show a toast with the TextView text
                Toast.makeText(getApplicationContext(),
                       ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
                /*for(int i=0;i<values.length;i++) {
                    String templist=values[i];
                    list1[i]=templist;

                }*/

                String fname=values[position];
                Log.v("log_tag", "The fname is"+ fname);
                Intent intent=new Intent(ConnectDatabase.this, Userinfo.class);
                intent.putExtra("FirstName",fname );
                startActivity(intent);
            }
        });

    // to remove the last comma

    }
}

Здесь я делаю ListView из базы данных SQLite и хочу отобразить в ListView только с первыми 10 строками ListView одновременно, но я получаю ошибку в строке list1[i]=tempvalue;, поэтому я не могускопировать массив здесь любой может помочь мне скопировать значения имени массива, где я получу все значения индекса столбца из моей базы данных SQLite.

Надеюсь, у кого-нибудь есть идея сделать это.

1 Ответ

1 голос
/ 31 января 2011

Ваше сообщение довольно сложно прочитать, но я думаю, что проблема в том, что list1 не был инициализирован.

Вам необходимо добавить такую ​​строку:

list1 = new String[10];

прежде чем пытаться установить значение в массиве.

ps - я выбрал значение 10, так как ваш цикл for имеет i<10.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...