大きなプロジェクトでは、ステップを実行するコードの下に、
最初にGalleryMenoが実行され、次にGalleryActivityMainがあります
GalleryMeno.java
public class GalleryMeno extends Activity{
private Integer[] mThumbIds = {
R.drawable.gallary_farhad1 ,
R.drawable.gallary_farhad2,
R.drawable.gallary_naser ,
R.drawable.gallary_mehdi ,
R.drawable.gallary_other ,
R.drawable.gallary_old ,
R.drawable.gallary_amir ,
R.drawable.gallary_bazikonan
};
private String[] name = {
"gallary_farhad1",
"gallary_farhad2",
"gallary_naser",
"gallary_mehdi",
"gallary_other",
"gallary_old",
"gallary_amir",
"gallary_bazikonan"
};
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.gallery_meno_activity);
TextView titleName = (TextView) findViewById(R.id.title_name);
titleName.setText("گالری تصاویر");
//found width of Screen for Gridview
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
int densityX = display.getWidth();
Button btnUpdate = (Button) findViewById(R.id.update);
btnUpdate.setVisibility(View.INVISIBLE);
Button backButton = (Button) findViewById(R.id.backward);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-g
finish();
}
});
GridView grid = (GridView) findViewById(R.id.gridViewSms);
grid.setAdapter(new ImageAdapter(getApplicationContext(), densityX, mThumbIds));
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position ,
long id) {
Intent MainGallery = new Intent(GalleryMeno.this , GalleryActivityMain.class);
MainGallery.putExtra("position", position);
MainGallery.putExtra("title", name[position]);
startActivity(MainGallery);
}
});
}
}
ImageAdapter .java
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private int widthOfScrren;
public Integer[] mThumbIds;
public ImageAdapter(Context c,int ScrrenSize,Integer[] mThumbIds){
mContext = c;
widthOfScrren=ScrrenSize;
this.mThumbIds = mThumbIds;
}
@Override
public int getCount() {
return mThumbIds.length;
}
@Override
public Object getItem(int position) {
return mThumbIds[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(mThumbIds[position]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
final int w;
if ( widthOfScrren == 0 )
w = 75;
else
w = widthOfScrren/3;
imageView.setLayoutParams(new GridView.LayoutParams(w,w));
return imageView;
}
}
GalleryActivityMain.java
public class GalleryActivityMain extends Activity {
public static Integer[] ImageGroup1 = {
R.drawable.farhad01,
R.drawable.farhad02,
R.drawable.farhad03,
R.drawable.farhad04,
R.drawable.farhad05,
R.drawable.farhad06,
R.drawable.farhad07,
R.drawable.farhad08,
R.drawable.farhad09,
R.drawable.farhad10,
R.drawable.farhad11,
R.drawable.farhad12,
R.drawable.farhad13,
R.drawable.farhad14,
R.drawable.farhad15,
R.drawable.farhad16
};
public static Integer[] ImageGroup2 = {
R.drawable.farhad17,
R.drawable.farhad18,
R.drawable.farhad19,
R.drawable.farhad20,
R.drawable.farhad21,
R.drawable.farhad22,
R.drawable.farhad23,
R.drawable.farhad24,
R.drawable.farhad25,
R.drawable.farhad26,
R.drawable.farhad27,
R.drawable.farhad28,
R.drawable.farhad29,
R.drawable.farhad30,
R.drawable.farhad31,
R.drawable.farhad32,
R.drawable.farhad33
};
public static Integer[] ImageGroup3 = {
R.drawable.naser01,
R.drawable.naser02,
R.drawable.naser03,
R.drawable.naser04,
R.drawable.naser05,
R.drawable.naser06,
R.drawable.naser07,
R.drawable.naser08,
R.drawable.naser09,
R.drawable.naser10,
R.drawable.naser11,
R.drawable.naser12,
R.drawable.naser13,
R.drawable.naser14,
R.drawable.naser15,
R.drawable.naser16,
R.drawable.naser17
};
public static Integer[] ImageGroup4 = {
R.drawable.mehdi01,
R.drawable.mehdi02,
R.drawable.mehdi03,
R.drawable.mehdi04,
R.drawable.mehdi05,
R.drawable.mehdi06,
R.drawable.mehdi07,
R.drawable.mehdi08,
R.drawable.mehdi09,
R.drawable.mehdi10,
R.drawable.mehdi11,
R.drawable.mehdi12,
R.drawable.mehdi13,
R.drawable.mehdi14,
R.drawable.mehdi15,
R.drawable.mehdi16,
R.drawable.mehdi17
};
public static Integer[] ImageGroup5 = {
R.drawable.other01,
R.drawable.other02,
R.drawable.other03,
R.drawable.other04,
R.drawable.other05,
R.drawable.other06,
R.drawable.other07,
R.drawable.other08,
R.drawable.other09,
R.drawable.other10,
R.drawable.other11,
R.drawable.other12,
R.drawable.other13,
R.drawable.other14,
R.drawable.other15,
R.drawable.other16,
};
public static Integer[] ImageGroup6 = {
R.drawable.old01,
R.drawable.old02,
R.drawable.old03,
R.drawable.old04,
R.drawable.old05,
R.drawable.old06,
R.drawable.old07,
R.drawable.old08,
R.drawable.old09,
R.drawable.old10,
R.drawable.old11,
R.drawable.old12,
R.drawable.old13,
R.drawable.old14,
R.drawable.old15,
R.drawable.old16,
R.drawable.old17,
R.drawable.old18,
R.drawable.old19
};
public static Integer[] ImageGroup7 = {
R.drawable.amir01,
R.drawable.amir02,
R.drawable.amir03,
R.drawable.amir04,
R.drawable.amir05,
R.drawable.amir06,
R.drawable.amir07,
R.drawable.amir08,
R.drawable.amir09,
R.drawable.amir10,
R.drawable.amir11,
R.drawable.amir12,
R.drawable.amir13,
R.drawable.amir14,
R.drawable.amir15
};
public static Integer[] ImageGroup8 = {
R.drawable.b1,
R.drawable.b2,
R.drawable.b3,
R.drawable.b4,
R.drawable.b5,
R.drawable.b6,
R.drawable.b7,
R.drawable.b8,
R.drawable.b9,
R.drawable.b10,
R.drawable.b11,
R.drawable.b12,
R.drawable.b13,
R.drawable.b14,
R.drawable.b15,
R.drawable.b16,
R.drawable.b17,
R.drawable.b18,
R.drawable.b19,
R.drawable.b20
};
public static Integer[] SelectedGroup;
private int Global_position;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.galery_activity);
TextView titleName = (TextView) findViewById(R.id.title_name);
Intent current = getIntent();
Global_position=current.getExtras().getInt("position");
titleName.setText(current.getExtras().getString("title"));
Button btnUpdate = (Button) findViewById(R.id.update);
btnUpdate.setVisibility(View.INVISIBLE);
Button backButton = (Button) findViewById(R.id.backward);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finish();
}
});
GridView grid=(GridView) findViewById(R.id.grid_view_gallery);
//connect xml_gridView to Class ImageAdapter
//when we sent 0 to screensize we want to auto generating image independent device
grid.setAdapter(new ImageAdapter(getApplicationContext(), 0, getCorrectItem(Global_position)));
//set item on click listener
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
Intent FullImage = new Intent(getApplicationContext(), GalleryFullImageView.class);
/******
* by below syntax we sent some information by a id
* to new intent and on new intent we extract it and use it
******/
FullImage.putExtra("position", position);
startActivity(FullImage);
}
});
}
private Integer[] getCorrectItem(int position)
{
switch (position) {
case 0:
SelectedGroup = ImageGroup1;
return ImageGroup1;
case 1:
SelectedGroup = ImageGroup2;
return ImageGroup2;
case 2:
SelectedGroup = ImageGroup3;
return ImageGroup3;
case 3:
SelectedGroup = ImageGroup4;
return ImageGroup4;
case 4:
SelectedGroup = ImageGroup5;
return ImageGroup5;
case 5:
SelectedGroup = ImageGroup6;
return ImageGroup6;
case 6:
SelectedGroup = ImageGroup7;
return ImageGroup7;
case 7:
SelectedGroup = ImageGroup8;
return ImageGroup8;
default:
SelectedGroup = ImageGroup7;
return ImageGroup7;
}
}
}
Mymanifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.esteghlaliha"
android:versionCode="8"
android:installLocation="preferExternal"
android:versionName="1.9" >
<uses-sdk
android:minSdkVersion="6"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="@drawable/esteghlal_big"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.perspolisiha.Esteghlal"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.perspolisiha.Main"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity android:name="com.example.rank.Resultshow"
android:configChanges="orientation|screenSize"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.rank.RankLayout"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.perspolisiha.SmsshowActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.perspolisiha.GalleryActivityMain"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.perspolisiha.GalleryFullImageView"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.perspolisiha.GalleryMeno"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.tv.TVLayout"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.tv.TVResultshow"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.bio.BioMainActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.bio.BioResultShow"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.history.HistoryActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.news.NewsActivityMain"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.news.ShowDetailActivity"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
<activity android:name="com.example.news.setting"
android:configChanges="orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar"/>
</application>
</manifest>
Case1: Android 2.2 で上記のコードを実行すると、gridview から作成された画像のメニューが表示され、
すべての項目をクリックすると、この項目に関するすべての画像が表示されます (この場合、すべての結果は OK です)。
ケース2:しかし、
アイテムをクリックしてAndroid 4.2で同じコードを実行すると(それに関するすべての画像を表示するため)、プログラムは強制終了せずに終了します
例:画像をクリックすると、
Why?How I can fix Case2?gallary_amir
からの画像のグリッドビューが期待されます。ImageGroup7