База данных не отображается в ListView, только изображение - PullRequest
1 голос
/ 25 июня 2010

Это код, который я использую для своего Listview, на который я получил ссылку для какого-то сайта.Показывает целый список изображений.Какую область я должен разместить в своей базе данных, чтобы установить текст для верхнего текста и нижнего текста?

открытый класс List_View extends ListActivity {

private DBAdapter db;

private TextView toptext;частный TextView нижний текст;приватный ListView lv;

public void onCreate (Bundle saveInstanceState) {try {

super.onCreate(savedInstanceState); 
setContentView(R.layout.list); 
db = new DBAdapter(this); 

toptext = (TextView) findViewById (R.id.toptext); 
bottomtext = (TextView) findViewById (R.id.bottomtext); 

ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();

HashMap<String, String> item;
for (int i = 0; i < 31; i++) {

        item = new HashMap<String, String>();
        item.put("Date:", "Saved Date" );
        item.put("Title:", "Saved Title" );
        list.add(item);
}

SimpleAdapter notes = new SimpleAdapter(this, list, R.layout.view_list,
                        new String[] { "date", "title" }, 
                        new int[] {R.id.toptext, R.id.bottomtext });
setListAdapter(notes);

} catch (Throwable e) {

        Log.e("DBAdapter",e.toString()); 

}}

иэто часть базы данных.

public Cursor getAllEntry() 
{
    return db.query(DATABASE_TABLE_2, new String[] {
            KEY_ROWID2,
            KEY_TITLE,
            KEY_ENTRY,
            KEY_MOOD,
            KEY_DATE,
            KEY_TIME},
            null, 
            null, 
            null, 
            null, 
            null, 
            null);
}

1 Ответ

1 голос
/ 16 июля 2011

некоторые изменения в вашем коде ... и вы получите результат

сначала объявите Cursor, класс адаптера в вашем классе ListActivity

    private NCursorAdapter adapter = null;    
    private Cursor mNotesCursor;

    mNotesCursor = db.getAllEntry();
            startManagingCursor(mNotesCursor);
if (adapter == null) {
            adapter = new NCursorAdapter(this, mNotesCursor);
            setListAdapter(adapter);
        } else {
            adapter.changeCursor(mNotesCursor);
            adapter.notifyDataSetChanged();
        }

Вы должны создать класс NCursorAdapter в своем приложении.

public class NCursorAdapter extends CursorAdapter {

    private Cursor mCursor;
    private Context mContext;
    private final LayoutInflater mInflater;


    public NCursorAdapter(Context context, Cursor c) {
        super(context, c);
        // TODO Auto-generated constructor stub
        mInflater = LayoutInflater.from(context);
        mContext = context;
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        // TODO Auto-generated method stub
        TextView title = (TextView) view.findViewById(R.id.title);
        title.setText(cursor.getString(cursor.getColumnIndex("title")));

        TextView date = (TextView) view.findViewById(R.id.date);
        date.setText(cursor.getString(cursor.getColumnIndex("date")));

    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        // TODO Auto-generated method stub
        final View view = mInflater.inflate(R.layout.data, parent, false);

        return view;
    }

}

здесь файл data.xml - ваш пользовательский макет. какой контент два textview .... "title" и "date" имя столбца таблицы вашей базы данных ...

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