Ich weiß nicht, warum diese create-Funktion nicht in der Klasse ist, erweitert BaseAdapter.Ich weiß nicht, warum diese create-Funktion nicht in der Klasse ist, erweitert BaseAdapter
Ich möchte Bild von Galerie zu Bildansicht in benutzerdefinierten ListView auswählen.
Ich versuche, eine Funktion "onActivityResult" hinzuzufügen, nachdem die Funktion "getView" nicht funktioniert.
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();
}
}
}
}
Aber ich versuche, eine Funktion "onActivityResult" der Klasse "MainActivity" hinzufügen, um es zu arbeiten.
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();
}
}
}
Wenn ich "onActivityResult" in der Klasse "CustomList" funktionieren soll. Wie macht man?
'onActivityResult' -Methode stammt von 'Activity', daher ist es nicht möglich, sie innerhalb einer anderen Klasse zu überschreiben, die' Activity' oder 'FragmentActivity' nicht erweitert. aber Sie können die Anforderung anfordern, indem Sie entweder [benutzerdefinierter Listener über Schnittstelle erstellen] (https://guides.codepath.com/android/Creating-Custom-Listeners) oder [LocalBroadcastManager] (http://developer.android.com/) verwenden. intl/es/referenz/android/support/v4/content/LocalBroadcastManager.html) –