У меня есть Listacitivty, где мне нужно показывать изображение и текст в каждой строке.
Макет выглядит так:
event.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:layout_height="wrap_content"
android:layout_width="30px"
android:layout_marginTop="2px" android:layout_marginRight="2px"
android:layout_marginLeft="2px" android:id="@+id/logoImage"
>
</ImageView>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/title"
android:textSize="15px"></TextView>
</LinearLayout>
Активность выглядит так:
public class Activity extends ListActivity{
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
dba=new DatabaseAdapter(this);
dba.open();
View header = getLayoutInflater().inflate(R.layout.header, null);
ListView lv = getListView();
lv.addHeaderView(header);
fillOnStart();
}
private void fillOnStart(){
ArrayList<Title> temp = dba.returnTitle(); // this works
ArrAdapter notes = new ArrAdapter(this, temp);
Toast.makeText(this, "Size: " +notes.getCount(), Toast.LENGTH_LONG).show();
//because this show good size
setListAdapter(notes); //i suppose this is a problem
}
и мой адаптер выглядит так:
private class ArrAdapter extends BaseAdapter{
private Context mContext;
private ArrayList<Title> lista;
public ArrAdapter(Context c, ArrayList<Title> list){
mContext = c;
this.lista =list;
}
public int getCount() {
// TODO Auto-generated method stub
return lista.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ViewHolder vh =null;
//Title title= al.get(position);
LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.event, parent, false);
ImageView imlogo = (ImageView)v.findViewById(R.id.logoImage);
TextView textTitle = (TextView)v.findViewById(R.id.tytul);
textTitle.setText("asdasdasdasd"); //i try like that, to make sure that my databaseAdapter do not have blame on it
convertView.setTag(v);
return convertView;
}
}
Когда я запускаю приложение, я вижу "... неожиданно остановился ..." - что мне не хватает?
Обновление:
Я не использую LogCat. Когда я запускаю logcat и запускаю программу, в таблице ничего нет. может я что-то не так делаю с logcat?
когда я пытаюсь запустить logcat, я получаю следующие сообщения:
[2011-11-23 10:26:30 - Logcat]device not found
com.android.ddmlib.AdbCommandRejectedException: device not found
at com.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:736)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:373)
at com.android.ddmlib.Device.executeShellCommand(Device.java:284)
at com.android.ddmuilib.logcat.LogPanel$3.run(LogPanel.java:527)
ОК, мой список просмотра показывает текст. это работает View v = inflater.inflate (R.layout.event, null) ;,
но я не вижу изображения в logoImage.
название класса выглядит так:
public class Title {
public int id;
public String tit;
public Bitmap logo;
... and setter and getter
}
и метод возвращает Arraylist (в dba) с таким заголовком:
public ArrayList<Title> returnTitle(){
Title t = new Title(1,"aaaaaaaaaa", BitmapFactory.decodeFile("C:\\Users\\hormon\\Desktop\\favicon.ico"));
Title t1 = new Title(2,"assdsdsdsdaa", BitmapFactory.decodeFile("C:\\Users\\hormon\\Desktop\\icon.ico"));
ArrayList<Title> art = new ArrayList<Title>(2);
art.add(t);
art.add(t1);
return art;
}
с другой стороны, могу ли я динамически вставлять изображения в фодлер, например drawable-hdpi, а затем вставить в мой imageLogo?