クラス内にその作成関数がBaseAdapterを拡張する理由がわかりません。なぜクラス内にcreate関数が存在しないのか分かりません。BaseAdapterを拡張します。
カスタムlistViewでギャラリーから画像ビューを選択します。
関数 "getView"が機能しなくなった後に、関数 "onActivityResult"を追加しようとしました。
CustomList.java
public class CustomList extends BaseAdapter {
public static final int REQUEST_GALLERY = 1;
Context mContext;
String[] strText1;
TextView Text1;
public static ImageView imgView;
public CustomList(Context context, String[] strText1) {
this.mContext = context;
this.strText1 = strText1;
}
public int getCount() {
return strText1.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater mInflater =
(LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null)
view = mInflater.inflate(R.layout.custom_listview, parent, false);
Text1 = (TextView) view.findViewById(R.id.Text1);
Text1.setText(strText1[position]);
imgView = (ImageView) view.findViewById(R.id.imgView);
imgView.setImageResource(R.drawable.ic_NoPhoto);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
((Activity) mContext).startActivityForResult(Intent.createChooser(intent
, "Select Picture"), REQUEST_GALLERY);
}
});
return view;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_GALLERY && resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
imgView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
しかし、私は機能を追加しようと、 "onActivityResult" クラス "MainActivity" にそれが動作します。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CustomList.REQUEST_GALLERY && resultCode == RESULT_OK) {
Uri uri = data.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
CustomList.imgView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
"CustomList"クラスで "onActivityResult"を機能させたいのですが。実行する方法?
'onActivityResult'メソッドは 'Activity'からのものなので、' Activity'や 'FragmentActivity'を拡張していない他のクラスの中ではオーバーライドできません。 [インターフェイスを使用してカスタムリスナーを作成する](https://guides.codepath.com/android/Creating-Custom-Listeners)または[LocalBroadcastManager](http://developer.android.com/)のいずれかを使用して、必須タスクをアーカイブすることができます。 intl/es/reference/android/support/v4/content/LocalBroadcastManager.html) –