データベースから取得したデータ(String)を表示するためにListViewを使用しましたが、非常にシンプルですが、私の同僚の1人が画面のテキストの前にイメージを置くことにしました。 ListViewではこれを行うことができませんでしたが、GridViewを使用していくつかの時間を費やし、テキストの前に画像を配置した後、必要なだけ正確に見えるGridViewを見つけました。 )(ImageAdapterを使用してGridviewから選択した項目を取得するにはどうすればよいですか? (Android)
今、残念ながら私たちは、私はOnItemClickListenerを使用してい
(選択した項目から来ているテキストに基づいて)選択した項目を取得する方法がわからない、とonItemClick内のメソッドgridView.getItemSelectedAtPositionしかし、私が得るものはすべて "ヌル"です。
ImageAdapterに何か関係がある場合、私はArrayAdapterに変更しても問題ないです。適切なアイテムを正しく取得できますが、このように行にイメージはありません。
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id{ String selectedItem = (String) (gridView.getItemAtPosicion(position)); //always null } });
私は何ができますか?
EDITED - ListViewのソース
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] mobileValues;
private final String[] mobileValuesD;
public ImageAdapter(Context context, String[] mobileValues, String[] mobileValuesD) {
this.context = context;
this.mobileValues = mobileValues;
this.mobileValuesD = mobileValuesD;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.pesquisa_2, null);
// set value into textview
TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label);
textView.setText(mobileValues[position]+"\n"+mobileValuesD[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView.findViewById(R.id.grid_item_image);
String mobile = mobileValues[position];
//SELECT DAS IMAGENS
if (mobile.equals("pdt1")) {
imageView.setImageResource(R.drawable.img1);
} else if (mobile.equals("prd2")) {
imageView.setImageResource(R.drawable.feijao);
} else {
imageView.setImageResource(R.drawable.acucar);
}
} else {
gridView = (View) convertView;
}
return gridView;
}
public int getCount() {
return mobileValues.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
}
をそして、あなたのイメージアダプターのコードがどのように見えますか? –
@ TomaszGawel私たちがしたのは、アダプタgridView.setAdapter(新しいImageAdapter(this、name_array、description_array))を設定することでした。 – user1419496
ImageAdapterは標準クラスではありませんのでImageAdapterクラスのコードを作成してください。getItemメソッドは単純にnullを返します。 –