私はこの質問を投稿する前に無限のギャラリーについてのそれらの記事をチェックしましたが、それは私のために働かなかった。ギャラリーはそれなりに残っていた。このコードは、gallery.setSelection((int)(Integer.MAX_VALUE/2) - (Integer.MAX_VALUE/2)% mImageIds.length);
でも少しでもギャラリーには影響しません。私のギャラリーは7つの項目が含まれているためといただきました!より多くの、だけではなく、上記setSelection()
文の長さを取得するためonCreate
自体にギャラリー項目を定義するのは、私はちょうど7
の代わりmImageIds.length
を書きました。しかし、LogCat
はArrayIndexOutOfBounds Exception
と表示され始めました。だから私はどのような選択肢がありましたか?私は誰もがやることをしました。私はその7
を削除し、それがうまく動作していたポイントまでコードを元に戻しました。しかし、再び、LogCatはそのエラーから出てこなかった。それは本当に欲求不満です。助けてください。無限エンドレスギャラリー?まあ、それは私のために働いていません
エンドレスギャラリーで誰かが助けてくれると助かります。
ありがとうございます。
LogCat:
3月17日18:46:09.681:D/android.widget.GridLayout(626):水平制約:X7 - X0> 320、X4 - X3> 87、X5 - X4> 0 、X6 - X5> 77、X4 - X2 < 64、X4 - X3 < 64、X2 - X1 < 64、X1 - X0 < 64は矛盾しています。永久削除:x7 - x0 < 320、x4 - x2 < 64、x4 - x3 < 64. 03-17 18:46:09.691:D/android.widget.GridLayout(626):垂直方向の制約:y1 - y0> 21 y4-y3> 40、y5-y4> 10、y6-y5> 48、y7-y6> 0、y8-y7> 48、y9-y8> 0、y10 y12> y11> 44、y12-y10> 48、y13-y12> 82、y13-y0 < 199、y12-y11 < 44は矛盾している。永久削除:y13 - y0 < 199. 03-17 18:46:09.751:D/AndroidRuntime(626):VMをシャットダウン 03-17 18:46:09.751:W/dalvikvm(626):threadid = 1: (グループ= 0x409c01f8) 03-17 18:46:09.771:E/AndroidRuntime(626):致命的除外:メイン 03-17 18:46:09.771: E/AndroidRuntime(626): java.lang.ArrayIndexOutOfBoundsException: length=7; index=1073741823
03-17 18:46:09.771:E/AndroidRuntime(626): com.sanjay.frames.FramesActivity $ ImageAdapter.getView(FramesActivity.java:86) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget.Gallery.makeAndAddView(Gallery.java:844) ) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget.Gallery.layout(Gallery.java:645) 03-17 18:46:09.771:E/AndroidRuntime(626): android.widget.Gallery.onLayout(Gallery.java:346) 3月17日18:46:09.771:E/AndroidRuntime(626):android.view.View.layout(View.java:11278)で 3月17日18:46:09.771:E/AndroidRuntime(626):でandroid.view.ViewGroup.layout(ViewGroup.java:4224) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget.LinearLayout.setChildFrame(LinearLayout.java:1628) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget.LinearLayout.layoutVertical(LinearLayout.java:1486) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget。 LinearLayout.onLayout(LinearLayout.java:1399) 03-17 18:46:09.771:E/AndroidRuntime(626):android.view.View.layout(View.java:11278) 03-17 18:46: 09/771:E/AndroidRuntime(626):android.view.ViewGroup.layout(ViewGroup.java:4224) 03-17 18:46:09.771:E/AndroidRuntime(626):at AndroidLuntime(626):android.view.View.layout(View.java:11278) 03-17 18:46:09.771: 18:46:09.771:E/AndroidRuntime(626):android.view.ViewGroup.layoutで(ViewGroup.java:4224) 3月17日18:46:09.771:E/AndroidRuntime(626):android.widgetました。 LinearLayout.setChildFrame(LinearLayout.java:1628) 03-17 18:46:09.771:E/AndroidRuntime(626):android.widget.LinearLayout。(LinearLayout.java:1386) 03-17 18:46:09.771: E/AndroidRuntime(626):android.view.View.layout(View.java:11278) 03-17 18:46:09.771:E/AndroidRuntime(626):android.view.ViewGroup.layout(ViewGroup。ジャワ:4224) 3月17日18:46:09.771:E/AndroidRuntime(626):46:09.771:E/AndroidRuntime(android.widget.FrameLayout.onLayout(FrameLayout.java:431) 3月17日18時626):android.view.View.layout(View.java:11278) 03-17 18:46:09.771:E/AndroidRuntime(626):android.view.ViewGroup.layout(ViewGroup.java:4224) 03-17 18:46:09.771:E/AndroidRuntime(626):android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1489) 03-17 18:4 6:09.771:E/AndroidRuntime(626):android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 03-17 18:46:09.771:E/AndroidRuntime(626):android.os.Handler。ディスパッチメッセージ(Handler.java:99) 03-17 18:46:09.771:E/AndroidRuntime(626):android.os.Looper.loop(Looper.java:137) 03-17 18:46:09.771: E/AndroidRuntime(626):android.app.ActivityThread.main(ActivityThread.java:4424) 03-17 18:46:09.771:E/AndroidRuntime(626):java.lang.reflect.Method.invokeNativeでネイティブメソッド) 03-17 18:46:09.771:E/AndroidRuntime(626):java.lang.reflect.Method.invoke(Method.java:511) 03-17 18:46:09.771:E/AndroidRuntime (626):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 03-17 18:46:09.771:E/AndroidRuntime(626):com.android.internal.o s.ZygoteInit.main(ZygoteInit.java:551) 3月17日18:46:09.771:E/AndroidRuntime(626):dalvik.system.NativeStart.main(ネイティブメソッド)
でここに私のコードですギャラリー:
public class FramesActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetrics metrics=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Gallery gallery = (Gallery) findViewById(R.id.gallery);
Integer[] mImageIds = {
R.drawable.ic_launcher,
R.drawable.ic_menu_template,
R.drawable.th,
R.drawable.wt,
R.drawable.cur,
R.drawable.ic_launcher,
R.drawable.ic_launcher
};
gallery.setAdapter(new ImageAdapter(this));
gallery.setSelection((int)(Integer.MAX_VALUE/2) - (Integer.MAX_VALUE/2)% mImageIds.length);
gallery.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
EditText editText2=(EditText) findViewById(R.id.editText2);
editText2.setText(""+position);
}
});
}
public class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private Integer[] mImageIds = {
R.drawable.ic_launcher,
R.drawable.ic_menu_template,
R.drawable.th,
R.drawable.wt,
R.drawable.cur,
R.drawable.ic_launcher,
R.drawable.ic_launcher
};
public ImageAdapter(Context c) {
mContext = c;
TypedArray attr = mContext.obtainStyledAttributes(R.styleable.Frames);
mGalleryItemBackground = attr.getResourceId(
R.styleable.Frames_android_galleryItemBackground, 0);
attr.recycle();
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(150, 100));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setBackgroundResource(mGalleryItemBackground);
return imageView;
}
}
}
はまた、私はあなたが上記のコード内の他の間違いを見れば、それらを指摘気にしないアンドロイドdevelopment.Soに初心者です。
私はちょうど 'setSelection()'ステートメントを削除すると、ギャラリーは正常に動作します。 – Exorcist