--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
よろしくお願いいたします。
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
--
おそらく、下記ディレクトリに
icon1.png, icon2.png, icon3.png, icon4.pngといった
画像ファイルを入れ忘れているのではないでしょうか?
drawable-hdpi
drawable-ldpi
drawable-mdpi
これが入っているのであれば、以下のコードが
コンパイルエラーにならないはずです。
--------------
一部抜粋
--------------
// ListViewに表示する適当なデータ
ArrayList<ImageAndString> list = new ArrayList<ImageAndString>();
String[] strlist = new String[] { "a", "b", "c", "d" };
// ここをコメントアウト
//String id_name[] = { "icon", "icon2", "icon3", "icon4" };
// ここはちょっと改造
int id_no[] = new int[]{R.drawable.icon1, R.drawable.icon2,
R.drawable.icon3, R.drawable.icon4};
for (int i = 0; i < strlist.length; i++)
{
ImageAndString data = new ImageAndString();
data.text = strlist[i];
// ここをコメントアウト
//id_no[i] = getResources().getIdentifier(id_name[i], "drawable",
getPackageName());
data.image = id_no[i];
list.add(data);
}
--------------
On 10月6日, 午後11:16, osajiro <osajir...@gmail.com> wrote:
> お世話になります。sanji03です。
> 自己レスです。
>
> main()の最後に
> listView.setAdapter(adpt);
> をセットするのを忘れてました。
> お騒がせしました。
>
> ・・・ただ、このコードだと、
> String[] strlist = new String[]{"a", "b", "c", "d"};
> String[] id_name = new String[]{"icon","icon2","icon3","icon4"};
> と順番に表示したいのですが
>
> テキスト d アイコン4
> テキスト d アイコン4
> テキスト d アイコン4
> テキスト d アイコン4
>
> と、なってしまいました。
> 配列のループ処理に問題があるのでしょうか。。
> ご教示ください。
>
> 2010年10月6日22:54 osajiro <osajir...@gmail.com>:
> > 2010年10月6日1:23 yokmama <hijirinhiji...@gmail.com>:
>
> > 夜子ままです
>
> >> public View getView(int position, View convertView, ViewGroup parent) {
>
> >> こんなかんじで final をつけてはいけません。
>
> >> txtView.setText((CharSequence) obj);
> >> これは
> >> txtView.setText(obj.text);
>
> >> imgView.setImageResource(int obj);
> >> これは
> >> imgView.setImageResource(obj.image);
>
> >> これでどうでしょう?
>
> >> 2010年10月6日1:15 osajiro <osajir...@gmail.com>:
> >>> 2010年10月6日0:05 yokmama <hijirinhiji...@gmail.com>:
>
> >>> 夜子ままです
>
> >>>> MyAdapter に渡すデータをどうするかっていう話ですよね。
>
> >>>> データは
>
> >>>> ArrayList<ImageAndString> と言うものを作ります、
> >>>> ArrayListはListのサブクラスなので実質同じだとおもってください。
>
> >>>> 作成のしかたは
> >>>> ArrayList<ImageAndString> list = new ArrayList<ImageAndString>();
>
> >>>> と言う感じでつくるわけですが、このままでは空っぽなのでデータをいれていきます。
>
> >>>> データをどうつくるかについてそのシステムによってやりかたがかわってくるとおもいますが
>
> >>>> String[] strlist = new String[]{"a", "b", "c", "d"};;
> >>>> for(int i=0; strlist.length; i++){
> >>>> ImageAndString data = new ImageAndString();
> >>>> data.text = strlist[i];
> >>>> data.image = ??? <-
>
> ...
>
> もっと読む ≫
こんばんは。
あんざいです。
これが原因かわかりませんが、
いくつか気になる点があります。
・ この場合Activity ではなく、 ListActivity を継承したほうがすっきりし
ます。
・Adapter の getView で inflate するときに
view = inflater.inflate(R.layout.row, null);
だとうまくいかないってどこかのサイトでみたきが、、、
view = inflater.inflate(R.layout.row, parent, false);
にするといいはず
現状にそった形で動作確認済みのサンプルです。
テストしたのは png ですが、 gif でも大丈夫(なはず)
ListViewImageTest.java
------------------------------
package yanzm.example.listviewimagetest;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ListViewImageTest extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ListViewに表示する適当なデータ
String[] strlist = new String[] { "a", "b", "c", "d" };
int id_no[] = new int[] { R.drawable.icon1, R.drawable.icon2,
R.drawable.icon3, R.drawable.icon4 };
ArrayList<ImageAndString> list = new ArrayList<ImageAndString>();
for (int i = 0; i < strlist.length; i++) {
ImageAndString data = new ImageAndString();
data.text = strlist[i];
data.image = id_no[i];
list.add(data);
}
setListAdapter(new MyAdapter(this, list));
}
class ImageAndString {
String text;
int image;
}
public class MyAdapter extends ArrayAdapter<ImageAndString> {
private LayoutInflater inflater;
public MyAdapter(Context context, List<ImageAndString> objects) {
super(context, 0, objects);
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.row, parent, false);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.rowtext);
holder.image = (ImageView) convertView
.findViewById(R.id.rowicon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
ImageAndString obj = getItem(position);
holder.text.setText(obj.text);
holder.image.setImageResource(obj.image);
return convertView;
}
}
static class ViewHolder {
TextView text;
ImageView image;
}
}
row.xml
-------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/rowtext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/rowicon"
android:layout_height="fill_parent"
android:layout_width="wrap_content"
/>
</LinearLayout>
---
あんざいゆき
anzai...@gmail.com
twtte : yanzm
> こんばんは。お世話になります。sanji03です。
> 岩井さんありがとうございます。
>
> > drawable-hdpi
> > drawable-ldpi
> > drawable-mdpi
>
> 上記フォルダとはどこにあるのでしょう。
>
> わたしのプロジェクトの構成では、
> imgstring(プロジェクトルート)/res/drawable
> の下に icon,icon2,icon3,icon4を入れています。
> ファイル形式は、pngではなくgifですが。
>
> ・・・ご指摘いただいたコードに変更しコンパイルエラーなく通ったのですが
> 結果は変わらず
>
> テキスト d アイコン4
> テキスト d アイコン4
> テキスト d アイコン4
> テキスト d アイコン4
>
> のままでした。。
>
> んーー継続デバッグ中です。
>
> 何か他にお気づきの点等ありましたら
> ご指摘いただければ幸いです。
> よろしくお願いいたします。
>
> 2010年10月7日8:48 Tomoki Iwai <tomok...@gmail.com
> <mailto:tomok...@gmail.com>>:
> <mailto:osajir...@gmail.com>> wrote:
> > お世話になります。sanji03です。
> > 自己レスです。
> >
> > main()の最後に
> > listView.setAdapter(adpt);
> > をセットするのを忘れてました。
> > お騒がせしました。
> >
> > ・・・ただ、このコードだと、
> > String[] strlist = new String[]{"a", "b", "c", "d"};
> > String[] id_name = new String[]{"icon","icon2","icon3","icon4"};
> > と順番に表示したいのですが
> >
> > テキスト d アイコン4
> > テキスト d アイコン4
> > テキスト d アイコン4
> > テキスト d アイコン4
> >
> > と、なってしまいました。
> > 配列のループ処理に問題があるのでしょうか。。
> > ご教示ください。
> >
> > 2010年10月6日22:54 osajiro <osajir...@gmail.com
> <mailto:osajir...@gmail.com>>:
> <mailto:hijirinhiji...@gmail.com>>:
> >
> > > 夜子ままです
> >
> > >> public View getView(int position, View convertView, ViewGroup
> parent) {
> >
> > >> こんなかんじで final をつけてはいけません。
> >
> > >> txtView.setText((CharSequence) obj);
> > >> これは
> > >> txtView.setText(obj.text);
> >
> > >> imgView.setImageResource(int obj);
> > >> これは
> > >> imgView.setImageResource(obj.image);
> >
> > >> これでどうでしょう?
> >
> > >> 2010年10月6日1:15 osajiro <osajir...@gmail.com
> <mailto:osajir...@gmail.com>>:
> <mailto:hijirinhiji...@gmail.com>>:
> >
> > >>> 夜子ままです
> >
> > >>>> MyAdapter に渡すデータをどうするかっていう話ですよね。
> >
> > >>>> データは
> >
> > >>>> ArrayList<ImageAndString> と言うものを作ります、
> > >>>> ArrayListはListのサブクラスなので実質同じだとおもってください。
> >
> > >>>> 作成のしかたは
> > >>>> ArrayList<ImageAndString> list = new
> ArrayList<ImageAndString>();
> >
> > >>>> と言う感じでつくるわけですが、このままでは空っぽなのでデー
> タをいれていきます。
> >
> > >>>> データをどうつくるかについてそのシステムによってやりかたが
> かわってくるとおもいますが
> >
> > >>>> String[] strlist = new String[]{"a", "b", "c", "d"};;
> > >>>> for(int i=0; strlist.length; i++){
> > >>>> ImageAndString data = new ImageAndString();
> > >>>> data.text = strlist[i];
> > >>>> data.image = ??? <-
> >
> > ...
> >
> > もっと読む ≫
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者
> に送られています。
> このグループに投稿するには、android-g...@googlegroups.com
> <mailto:android-g...@googlegroups.com> にメールを送信してく
> ださい。
> このグループから退会するには、android-group-japan+
> unsub...@googlegroups.com
> <mailto:android-group-japan%2Bunsu...@googlegroups.com> にメー
> ルを送信してください。
> 詳細については、http://groups.google.com/group/android-group-
> japan?hl=ja からこのグループにアクセスしてください。
>
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送
> られています。
> このグループに投稿するには、android-g...@googlegroups.com に
> メールを送信してください。
> このグループから退会するには、android-group-japan+
> unsub...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=
> ja からこのグループにアクセスしてください。