ActionBarSherlockとSherlockDialogFragmentを使用しています。私のプロジェクトには少し問題があります。sherlockdialogfragmentで他のレイアウトを表示したいのですが、すべてうまくいきます。私の問題は、imageadapterを使用する場合、imageadapterで「this」を使用する必要があることを知っている限りです。静的な「これ」は使用できませんが、どうすればよいですか?sherlockdialogfragmentでレイアウトを表示する方法がわかりません。これが私の問題です。
((GridView) gridView).setAdapter(new ImageAdapter(this, MOBILE_OS));
これが私の完全なコードです
public static class MyDialogFragment extends SherlockDialogFragment {
int mNum;
static MyDialogFragment newInstance(int num) {
MyDialogFragment f = new MyDialogFragment();
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNum = getArguments().getInt("num");
int style = DialogFragment.STYLE_NORMAL, theme = 0;
style = DialogFragment.STYLE_NO_FRAME;
theme = android.R.style.Theme;
setStyle(style, theme);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final String[] MOBILE_OS = new String[] { "Android", "iOS",
"Windows", "Blackberry" };
View v = inflater.inflate(R.layout.pen_content, container, false);
View gridView = v.findViewById(R.id.gridView1);
((GridView) gridView).setAdapter(new ImageAdapter(this, MOBILE_OS));
return v;
}
}
mycodeを修正するにはどうすればよいですか...ありがとう...
編集....私の問題は解決しました..しかし、もう1つ質問します....グリッドビューイベントクリックから値を取得したい場合は、どうすればよいですか?? setOnClickListenerを追加しましたが、エラーが発生します...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final String[] MOBILE_OS = new String[] { "Android", "iOS",
"Windows", "Blackberry" };
View v = inflater.inflate(R.layout.pen_content, container, false);
View gridView = v.findViewById(R.id.gridView1);
((GridView) gridView).setAdapter(new ImageAdapter(getSherlockActivity(), MOBILE_OS));
gridView.setOnClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(getSherlockActivity(),((TextView)v.findViewById(R.id.grid_item_label)).getText(), Toast.LENGTH_SHORT).show();
}
});
return v;
}