Я пытаюсь выбрать изображение с камбуза, а затем обработать его, я делаю это, нажав кнопку на основной операции, которая затем запускает новое действие, в котором вы можете выбрать либо создайте изображение или выберите свой собственный, и когда я захочу выбрать свой собственный образ, он должен открыть галерею и позволить мне выбрать изображение, как получилось, что это не работает каким-то образом (хотя это действительно работало раньше, я думаю, что я просто что-то сломал, но не знаю, что)Intent не запускается
мой код:
package il.popov.ecptest;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class select_activity extends ListActivity {
ListView listView;
Intent intent;
@
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] StringArray = {
"Select your own", "image1", "image2", "image3", "image4", "None"
};
setListAdapter(new ArrayAdapter <String> (this, R.layout.support_simple_spinner_dropdown_item, StringArray));
intent = new Intent(this.getApplicationContext(), main_activity.class);
listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@
Override
public void onItemClick(AdapterView <? > arg0, View arg1, int position, long arg3) {
processClick(position);
}
});
}
public void processClick(int position) {
switch (position) {
case 0:
//Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
//startActivity(i);
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 237);
//Returns to main activity , DO NOT CHANGE
startActivity(intent);
break;
case 1:
midClass.img = BitmapFactory.decodeResource(getResources(), R.drawable.image1);
midClass.isImageSelected = true;
startActivity(intent);
break;
case 2:
midClass.img = BitmapFactory.decodeResource(getResources(), R.drawable.image2);
midClass.isImageSelected = true;
startActivity(intent);
break;
case 3:
midClass.img = BitmapFactory.decodeResource(getResources(), R.drawable.image3);
midClass.isImageSelected = true;
startActivity(intent);
break;
case 4:
midClass.img = BitmapFactory.decodeResource(getResources(), R.drawable.image4);
midClass.isImageSelected = true;
startActivity(intent);
break;
case 5:
midClass.img = null;
midClass.isImageSelected = false;
startActivity(intent);
break;
default:
midClass.toastificate("Error in selection process");
midClass.isImageSelected = false;
midClass.img = null;
break;
}
}
@
Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
midClass.toastificate("checking result");
if (requestCode == 237 && resultCode == RESULT_OK && null != data) {
midClass.toastificate("Processing image");
Uri selectedImage = data.getData();
String[] filePathColumn = {
MediaStore.Images.Media.DATA
};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inMutable = true;
midClass.img = BitmapFactory.decodeFile(picturePath, opt);
if (midClass.img != null) {
midClass.isImageSelected = true;
} else {
midClass.isImageSelected = false;
}
}
}
}
я использовал следующие разрешения:
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
Почему у вас есть две startActivity в случае 0? – Stefan
Сначала начинается галерея, чтобы выбрать изображение, а другая возвращается к основной деятельности, я знаю, что есть лучший способ сделать это, но сейчас это не моя проблема. – DirtyAxe
Это не то, что она делает. Он начинает сборщик вашей галереи, а также начинает основную деятельность поверх этого. Так что ничего не происходит. – Stefan