sharingIntent
アプリでリンクを共有するために使用しています。ボタンをクリックすると、共有ウィンドウが表示され、リンクが正しく共有されます。プロセスを共有した後、アプリが開かず、クラッシュします。私はintent.getExtras()
イメージとイメージURLを識別するために使用しています。Logcat によると、問題は配列のインデックスが 11 で、サイズが 0 に等しいということです。ただし、修正方法がわかりません。
共有プロセスが完了した後、次の行でエラーが発生します。imageLoader.displayImage(imageUrls.get(imagePosition), imageView);
ここに私の活動があります:
public class ProductDetail extends Activity {
static List<String> imageUrls = Data.BIGIMAGE;
static List<String> productUrl = Data.PRODUCT_URL;
DisplayImageOptions options;
LinearLayout shareButton;
int imagePosition;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.single_itemview);
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle!=null){
imagePosition = bundle.getInt("imagePosition");
}
ImageView imageView = (ImageView) findViewById(R.id.pager);
shareButton = (LinearLayout)findViewById(R.id.btn_share);
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(imageUrls.get(imagePosition), imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(ProductDetail.this, WebViewActivity.class);
i.putExtra("productUrl", productUrl.get(imagePosition));
startActivity(i);
}
});
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, productUrl.get(imagePosition));
startActivity(Intent.createChooser(sharingIntent,"Share With?"));
}
});
}
}
そしてlogcat出力:
02-12 10:53:45.405: E/AndroidRuntime(31742): FATAL EXCEPTION: main
02-12 10:53:45.405: E/AndroidRuntime(31742): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.ProductDetail}: java.lang.IndexOutOfBoundsException: Invalid index 11, size is 0
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread.access$700(ActivityThread.java:159)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.os.Handler.dispatchMessage(Handler.java:99)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.os.Looper.loop(Looper.java:176)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread.main(ActivityThread.java:5419)
02-12 10:53:45.405: E/AndroidRuntime(31742): at java.lang.reflect.Method.invokeNative(Native Method)
02-12 10:53:45.405: E/AndroidRuntime(31742): at java.lang.reflect.Method.invoke(Method.java:525)
02-12 10:53:45.405: E/AndroidRuntime(31742): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
02-12 10:53:45.405: E/AndroidRuntime(31742): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
02-12 10:53:45.405: E/AndroidRuntime(31742): at dalvik.system.NativeStart.main(Native Method)
02-12 10:53:45.405: E/AndroidRuntime(31742): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 11, size is 0
02-12 10:53:45.405: E/AndroidRuntime(31742): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
02-12 10:53:45.405: E/AndroidRuntime(31742): at java.util.ArrayList.get(ArrayList.java:308)
02-12 10:53:45.405: E/AndroidRuntime(31742): at com.example.ProductDetail.onCreate(ProductDetail.java:39)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.Activity.performCreate(Activity.java:5372)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
02-12 10:53:45.405: E/AndroidRuntime(31742): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)