Я создаю приложение, которое дает пользователю разрешение на выбор изображения из галереи в первом упражнении, а затем я хочу отправить его в «третье и четвертое занятие» и т. Д., Теперь дело в том, что я у меня есть действие загрузки, которое является «Вторым действием», и метод, который я использую для отправки выбранных изображений в несколько действий по порядку, - это обход их URI. Проблема в том, что изображения, выбранные пользователем, показываются во втором упражнении, но когда я передаю URI's
из второго занятия в третье, четвертое и т. Д., Изображения НЕ показываются. сначала я подумал, что совершаю ошибку при передаче URI, поэтому я сделал тост-сообщение о третьем упражнении, чтобы проверить, получаю ли я Uri, и получил адрес Uri, но я не знаю, почему у меня не может быть Uri преобразован в растровое изображение и изображение. Я застрял с этой проблемой почти 2 недели, мой друг предложил создать несколько фрагментов вместо нескольких действий, но я вроде как ладья ie с созданием фрагментов и их работой.
Мой вопрос:
1- Есть ли другой способ, кроме создания нескольких фрагментов? если нет, то как заставить его работать по моим кодам, пожалуйста, не отправляйте меня на ссылки на веб-сайт android .developer. URI, или, может быть, отправив растровое изображение, если да, то как изменить мои коды? Потому что методы, которые я нашел в Google, ни помогли, ни сработали для моего кода.
Мои коды:
Первое действие:
public class MainActivity extends AppCompatActivity {
Button myName;
Button accept;
HomeWatcher mHomeWatcher;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
static final String TAG = "Main2Activity";
private static int PICK_IMAGE_REQUEST = 1;
private static int PICK_IMAGE_REQUEST2 = 2;
private static int PICK_IMAGE_REQUEST3 = 3;
private static int PICK_IMAGE_REQUEST4 = 4;
String encoded ;
Uri imageUri;
Uri imageUri2;
Uri imageUri3;
Uri imageUri4;
Bitmap scaledx;
TextView txt1;
TextView txt2;
TextView txt3;
TextView txt4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
doBindService();
Intent music = new Intent();
music.setClass(this, MusicService.class);
startService(music);
mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() {
@Override
public void onHomePressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
@Override
public void onHomeLongPressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
});
mHomeWatcher.startWatch();
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(audioManager.STREAM_MUSIC, 10, 0);
btn1 = findViewById(R.id.person1);
btn2 = findViewById(R.id.person2);
btn3 = findViewById(R.id.person3);
btn4 = findViewById(R.id.person4);
final MediaPlayer mp2 = MediaPlayer.create(getApplicationContext(), R.raw.pssound);
accept = findViewById(R.id.accept);
myName = findViewById(R.id.userUsername);
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.layuoter, null);
final EditText input1 = (EditText) textEntryView.findViewById(R.id.editText);
final EditText input2 = (EditText) textEntryView.findViewById(R.id.editText2);
final EditText input3 = (EditText) textEntryView.findViewById(R.id.editText3);
final EditText input4 = (EditText) textEntryView.findViewById(R.id.editText4);
final EditText input5 = (EditText) textEntryView.findViewById(R.id.editText5);
final AlertDialog.Builder alert = new AlertDialog.Builder(this,R.style.MyAlertDialogStyle);
alert.setIcon(null).setTitle(null).setView(textEntryView).setPositiveButton(" | انجام |",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
myName.setText(" خوش آمدی " + " " +input1.getText().toString() );
btn1.setText(input2.getText().toString());
btn2.setText(input3.getText().toString());
btn3.setText(input4.getText().toString());
btn4.setText(input5.getText().toString());
}
});
alert.setCancelable(false);
alert.show();
accept.setEnabled(false);
accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentx = new Intent(getApplicationContext(), Loading.class);
intentx.putExtra("imageUri", imageUri.toString());
intentx.putExtra("imageUri2", imageUri2.toString());
intentx.putExtra("imageUri3", imageUri3.toString());
intentx.putExtra("imageUri4", imageUri4.toString());
intentx.putExtra("you", btn1.getText().toString());
intentx.putExtra("you2", btn2.getText().toString());
intentx.putExtra("you3", btn3.getText().toString());
intentx.putExtra("you4", btn4.getText().toString());
startActivity(intentx);
mp2.start();
finish();
overridePendingTransition( 0, R.anim.splashscreen );
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
mp2.start();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent2 = new Intent(Intent.ACTION_GET_CONTENT);
intent2.setType("image/*");
startActivityForResult(Intent.createChooser(intent2, "Select Picture"), PICK_IMAGE_REQUEST2);
mp2.start();
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent3 = new Intent(Intent.ACTION_GET_CONTENT);
intent3.setType("image/*");
startActivityForResult(Intent.createChooser(intent3, "Select Picture"), PICK_IMAGE_REQUEST3);
mp2.start();
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent4 = new Intent(Intent.ACTION_GET_CONTENT);
intent4.setType("image/*");
startActivityForResult(Intent.createChooser(intent4, "Select Picture"), PICK_IMAGE_REQUEST4);
mp2.start();
}
});
//
// imgFive.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
//
// Intent intent5 = new Intent(Intent.ACTION_GET_CONTENT);
// intent5.setType("image/*");
// startActivityForResult(Intent.createChooser(intent5, "Select Picture"), PICK_IMAGE_REQUEST5);
//
//
// mp2.start();
//
// }
// });
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && null != data) {
// Get uri
imageUri = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri);
int nh = (int) (bitmap.getHeight() * (1024.0 / bitmap.getWidth()));
Bitmap scaledx = Bitmap.createScaledBitmap(bitmap, 1024, nh, true);
btn1.setBackgroundResource(R.drawable.dady3);
btn1.setEnabled(false);
// Set image
// imgOne.setImageBitmap(scaled);
// t1.animate().alpha(1f);
// imgTwo.setEnabled(true);
} else if (requestCode == PICK_IMAGE_REQUEST2 && resultCode == RESULT_OK && null != data) {
// Get uri
imageUri2 = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri2);
int nh = (int) (bitmap.getHeight() * (1024.0 / bitmap.getWidth()));
Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 1024, nh, true);
btn2.setBackgroundResource(R.drawable.dady3);
btn2.setEnabled(false);
// Set image
// imgTwo.setImageBitmap(scaled);
// t2.animate().alpha(1f);
// imgThree.setEnabled(true);
} else if (requestCode == PICK_IMAGE_REQUEST3 && resultCode == RESULT_OK && null != data) {
// Get uri
imageUri3 = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri3);
int nh = (int) (bitmap.getHeight() * (1024.0 / bitmap.getWidth()));
Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 1024, nh, true);
btn3.setBackgroundResource(R.drawable.dady3);
btn3.setEnabled(false);
// Set image
// imgThree.setImageBitmap(scaled);
// t3.animate().alpha(1f);
// imgFour.setEnabled(true);
} else if (requestCode == PICK_IMAGE_REQUEST4 && resultCode == RESULT_OK && null != data) {
// Get uri
imageUri4 = data.getData();
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imageUri4);
int nh = (int) (bitmap.getHeight() * (1024.0 / bitmap.getWidth()));
Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 1024, nh, true);
btn4.setBackgroundResource(R.drawable.dady3);
btn4.setEnabled(false);
// Set image
// imgFour.setImageBitmap(scaled);
// t4.animate().alpha(1f);
accept.setEnabled(true);
}
} catch (Exception e) {
Toast.makeText(this, "Oops! Sorry", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
private boolean mIsBound = false;
private MusicService mServ;
private ServiceConnection Scon =new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
mServ = ((MusicService.ServiceBinder) iBinder).getService();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
mServ = null;
}};
void doBindService() {
bindService(new Intent(this, MusicService.class),
Scon, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
void doUnbindService() {
if (mIsBound) {
unbindService(Scon);
mIsBound = false;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
doUnbindService();
Intent music = new Intent();
music.setClass(this,MusicService.class);
stopService(music);
}
@Override
protected void onResume() {
super.onResume();
if (mServ != null) {
mServ.resumeMusic();
}
}
@Override
protected void onPause() {
super.onPause();
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = false;
if (pm != null) {
isScreenOn = pm.isScreenOn();
}
if (!isScreenOn) {
if (mServ != null) {
mServ.pauseMusic();
}
}
}
}
Второе действие:
public class Loading extends AppCompatActivity {
HomeWatcher mHomeWatcher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loading);
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.countdw);
mediaPlayer.start();
doBindService();
Intent music = new Intent();
music.setClass(this, MusicService.class);
startService(music);
mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() {
@Override
public void onHomePressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
@Override
public void onHomeLongPressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
});
mHomeWatcher.startWatch();
Bundle bundle = getIntent().getExtras();
final String xr=bundle.getString("you");
final String xr2=bundle.getString("you2");
final String xr3=bundle.getString("you3");
final String xr4=bundle.getString("you4");
final String xrnew1=bundle.getString("imageUri");
final String xrnew2=bundle.getString("imageUri2");
final String xrnew3=bundle.getString("imageUri3");
final String xrnew4=bundle.getString("imageUri4");
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intentx = new Intent(Loading.this, FirstPage.class);
intentx.putExtra("imageUri",xrnew1);
intentx.putExtra("imageUri2",xrnew2);
intentx.putExtra("imageUri3",xrnew3);
intentx.putExtra("imageUri4",xrnew4);
intentx.putExtra("you", xr);
intentx.putExtra("you2", xr2);
intentx.putExtra("you3", xr3);
intentx.putExtra("you4", xr4);
startActivity(intentx);
finish();
overridePendingTransition( 0, R.anim.splashscreen );
}
},3500);
}
private boolean mIsBound = false;
private MusicService mServ;
private ServiceConnection Scon =new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
mServ = ((MusicService.ServiceBinder) iBinder).getService();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
mServ = null;
}};
void doBindService() {
bindService(new Intent(this, MusicService.class),
Scon, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
void doUnbindService() {
if (mIsBound) {
unbindService(Scon);
mIsBound = false;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
doUnbindService();
Intent music = new Intent();
music.setClass(this,MusicService.class);
stopService(music);
}
@Override
protected void onResume() {
super.onResume();
if (mServ != null) {
mServ.resumeMusic();
}
}
@Override
protected void onPause() {
super.onPause();
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = false;
if (pm != null) {
isScreenOn = pm.isScreenOn();
}
if (!isScreenOn) {
if (mServ != null) {
mServ.pauseMusic();
}
}
}
}
Третье занятие:
public class FirstPage extends AppCompatActivity {
ImageView dost1;
ImageView dost2;
ImageView dost3;
ImageView dost4;
Uri imageUri1;
Uri imageUri2;
Uri imageUri3;
Uri imageUri4;
HomeWatcher mHomeWatcher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first_page);
dost1=findViewById(R.id.imglove1x);
dost2=findViewById(R.id.imglove2x);
dost3=findViewById(R.id.imglove3x);
dost4=findViewById(R.id.imglove4x);
doBindService();
Intent music = new Intent();
music.setClass(this, MusicService.class);
startService(music);
mHomeWatcher = new HomeWatcher(this);
mHomeWatcher.setOnHomePressedListener(new HomeWatcher.OnHomePressedListener() {
@Override
public void onHomePressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
@Override
public void onHomeLongPressed() {
if (mServ != null) {
mServ.pauseMusic();
}
}
});
mHomeWatcher.startWatch();
// imageView=findViewById(R.id.imager);
//// imageView2=(ImageView)findViewById(R.id.imager2);
//// imageView3=(ImageView)findViewById(R.id.imager3);
//// imageView4=(ImageView)findViewById(R.id.imager4);
//// imageView5=(ImageView)findViewById(R.id.imager5);
// txtYou = findViewById(R.id.nameYou);
// btnaccept = findViewById(R.id.accept2);
// final MediaPlayer mp = MediaPlayer.create(getApplicationContext(),R.raw.pssound);
//
// Intent i = getIntent();
// String xr=i.getStringExtra("you");
// String xr2=i.getStringExtra("you2");
// String xr3=i.getStringExtra("you3");
// String xr4=i.getStringExtra("you4");
// String xr5=i.getStringExtra("you5");
//
// btnaccept.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
//
// Intent intent = new Intent(FirstPage.this,SecondPage.class);
// startActivity(intent);
//
// mp.start();
//
//
//
//
// }
// });
//
Bundle bundle=getIntent().getExtras();
String string1=bundle.getString("imageUri");
String string2=bundle.getString("imageUri2");
String string3=bundle.getString("imageUri3");
String string4=bundle.getString("imageUri4");
imageUri1 = Uri.parse(string1);
imageUri2 = Uri.parse(string2);
imageUri3 = Uri.parse(string3);
imageUri4 = Uri.parse(string4);
final String stringrw ;
stringrw=imageUri1.toString();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),stringrw,Toast.LENGTH_LONG).show();
}
},2000);
dost1.setImageURI(imageUri1);
dost2.setImageURI(imageUri2);
dost3.setImageURI(imageUri3);
dost4.setImageURI(imageUri4);
Random rand = new Random();
int x = rand.nextInt(20);
if (x==0){
}else if (x==1){
}else if (x==2){
}else if (x==3){
}else if (x==4){
}else if (x==5){
}else if (x==6){
}else if (x==7){
}else if (x==8){
}else if (x==9){
}else if (x==10){
}else if (x==11){
}else if (x==12){
}else if (x==13){
}else if (x==14){
}else if (x==15){
}else if (x==16){
}else if (x==17){
}else if (x==18){
}else if (x==19){
}
//
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK) {
Uri selectedfile = imageUri2;
//The uri with the location of the file
dost2.setImageURI(selectedfile);
}
}
private boolean mIsBound = false;
private MusicService mServ;
private ServiceConnection Scon =new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
mServ = ((MusicService.ServiceBinder) iBinder).getService();
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
mServ = null;
}};
void doBindService() {
bindService(new Intent(this, MusicService.class),
Scon, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
void doUnbindService() {
if (mIsBound) {
unbindService(Scon);
mIsBound = false;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
doUnbindService();
Intent music = new Intent();
music.setClass(this,MusicService.class);
stopService(music);
}
@Override
protected void onResume() {
super.onResume();
if (mServ != null) {
mServ.resumeMusic();
}
}
@Override
protected void onPause() {
super.onPause();
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = false;
if (pm != null) {
isScreenOn = pm.isScreenOn();
}
if (!isScreenOn) {
if (mServ != null) {
mServ.pauseMusic();
}
}
}
}