2010-06-25 6 views
1

Ceci est le code que j'utilise pour ma Listview dont j'ai eu la référence pour un site web. Il montre toute une liste d'image. Quel espace dois-je placer dans ma base de données pour définir le texte pour le texte de toptext et le texte du bas?Base de données non affichée dans ListView, seule l'image

List_View public class étend ListActivity {

dbAdapter privé db;

privé TextView toptext; private TextView bottomtext; privé ListView lv;

onCreate public void (Bundle savedInstanceState) { 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()); 

} }

ce qui est la partie de base de données .

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); 
} 
+0

Votre question n'est pas claire ... il serait utile si vous l'expliquez mieux ... – JaVadid

+0

Oh ok. J'ai suivi cet exemple à partir d'un site web particulier. Et la listview que je veux a une image sur la gauche, et sur la droite est 2 textview. Je les ai déjà stockés dans ma base de données. Et maintenant je ne peux pas le montrer. Seule l'image sort. Le textview pas dehors ... SO ouais. Je vais placer ma partie de base de données dans. – UserA

Répondre

1

quelques modifications dans votre code ... et vous obtenir le résultat

premier DECLARE CURSOR, classe d'adaptateur dans votre classe 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(); 
     } 

vous devez créer la classe NCursorAdapter dans votre application.

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; 
    } 

} 

Ici le fichier data.xml est votre mise en page personnalisée. quel contenu deux textview .... "titre" et "date" votre nom de colonne de table de base de données ...

Questions connexes