ギャレーから画像を選択して処理しようとしていますが、メインアクティビティのボタンを押して処理しています。新しいアクティビティが開始されます。自分のイメージを選択したいときは、ギャラリーを開いてイメージを選ぶようにしてください。これはどういうふうに機能しないのでしょうか(以前はうまくいきましたが、インテントが開始しない
:私は、次の権限を使用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" />
なぜ0のケースでstartActivityが2つあるのですか? – Stefan
最初にギャラリーを起動してイメージを選択し、もう1つはメインアクティビティに戻ります。もっと良い方法があることはわかっていますが、それは現在私の問題ではありません – DirtyAxe
それはそうではありません。それはあなたのギャラリーピッカーを開始し、また、その上に主な活動を開始します。だから何も起こらない。 – Stefan