Я создал listView, отображающий 3 фотографии, и при нажатии на одну из фотографий отображается меню с вариантами выбора. Проблема заключается в том, что при съемке фотокамерой или выборе из галереи фотография не отображается на фотографии, на которую щелкнули. когда я попытался выбрать «Удалить», это было правильно изменить фотографию.
Здравствуйте, я сделал listView отображает 3 фотографии, и когда одна из фотографий нажимается, он показывает меню с выбором, проблема в том, что при съемке фотография с камеры или выбор из галереи фотография не отображается на фотографии, на которую щелкнули. когда я попробовал выбрать «Удалить», это было правильное изменение фотографии.
public class MainActivity extends AppCompatActivity {
int [] img = {
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct,
R.drawable.ct
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
ListView list = (ListView) findViewById(R.id.list_view);
String [] cashierposition = getResources().getStringArray(R.array.cashierposition);
ArrayList<listview> cashiersList = new ArrayList<listview>();
for (int i = 0 ; i < cashierposition.length ; i++){
cashiersList.add(new listview(cashierposition[i],img[i],img[i],img[i]));
}
ListAdapter ad = new ListAdapter(cashiersList);
list.setAdapter(ad);
}
class ListAdapter extends BaseAdapter {
ArrayList<listview> listview = new ArrayList<listview>();
Context context;
ListAdapter(ArrayList<listview> listview) {
this.listview = listview;
}
@Override
public int getCount() {
return listview.size();
}
@Override
public Object getItem(int position) {
return listview.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.cashier_position, parent, false);
TextView cashierposition = (TextView) view.findViewById(R.id.cashier_number);
final ImageView imageleft = (ImageView) view.findViewById(R.id.cashier_left);
ImageView imageend = (ImageView) view.findViewById(R.id.cashier_end);
ImageView imageright = (ImageView) view.findViewById(R.id.cashier_right);
cashierposition.setText(listview.get(position).cp);
imageleft.setImageResource(listview.get(position).img1);
imageend.setImageResource(listview.get(position).img2);
imageright.setImageResource(listview.get(position).img3);
final int i = position + 1;
imageleft.setOnClickListener(new View.OnClickListener() {
int REQUEST_IMAGE_CAPTURE = 0;
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(android.R.menu.class.getModifiers(), menu);
return true;
}
@Override
public void onClick(View v) {
final CharSequence[] options = { "Preview", "Take Photo", "Choose from Gallery", "Delete", "Cancel" };
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Add Photo!");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (options[item].equals("Take Photo")) {
if (checkSelfPermission(Manifest.permission.CAMERA)== PackageManager.PERMISSION_GRANTED){
REQUEST_IMAGE_CAPTURE ++;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
} else {
if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {
Toast.makeText(MainActivity.this, "Camera permission was not accepted", Toast.LENGTH_SHORT).show();
}
requestPermissions(new String[]{Manifest.permission.CAMERA},REQUEST_IMAGE_CAPTURE);
}
} else if (options[item].equals("Choose from Gallery")) {
REQUEST_IMAGE_CAPTURE ++;
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/");
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
} else if (options[item].equals("Preview")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
} else if (options[item].equals("Delete")) {
imageleft.setImageResource(R.drawable.ct);
} else if (options[item].equals("Cancel")) {
dialog.dismiss();
}
}
});
builder.show();
}
public void onActivityResult (int requestCode, int resultCode, Intent data){
MainActivity.super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
imageleft.setImageBitmap(imageBitmap);
}
}
});
}