Saving Activity state int String Array Double on Android
private int[] mData = new int[2]; // fill some values into array!!
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("myBoolean", true);
outState.putDouble("myDouble", 2.7);
outState.putInt("myInt", 5);
outState.putString("myString", "Heloo girls!");
int[] data = new int[mData.length];
for (int i = 0; i < data.length; i++) {
data[i] = mData[i];
}
outState.putIntArray("myArray", data);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
boolean myBoolean = savedInstanceState.getBoolean("myBoolean", false); // false basic value
double myDouble = savedInstanceState.getDouble("myDouble", 1.5); // 1.5 basic value
int myInt = savedInstanceState.getInt("myInt", 10);
String myString = savedInstanceState.getString("myString", "Hello boys!");
int[] data = savedInstanceState.getIntArray("myArray");
if (data != null && data.length == mData.length) {
for (int i = 0; i < data.length; i++) {
mData[i] = data[i];
}
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean myBoolean = savedInstanceState != null ? savedInstanceState.getBoolean("myBoolean", false) : true;
// etc. .......
}
396LW NO topic_id
AD
Další témata ....(Topics)
/data/data/<package>/shared_prefs/<package>_preferences.xml
String TAG = "MyActivityName";
File f = new File("/data/data/"+this.getPackageName()
+"/shared_prefs/"+this.getPackageName()+"_preferences.xml");
if(f.exists())
Log.d(TAG, "exist");
else
Log.d(TAG, "not exist");
Codec, compress(), CompressFormat, quality, decodeByteArray(), Android example source code with image.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SampleView(this));
}
private static Bitmap codec(Bitmap src, Bitmap.CompressFormat format,
int quality) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
src.compress(format, quality, os);
byte[] array = os.toByteArray();
return BitmapFactory.decodeByteArray(array, 0, array.length);
}
private static class SampleView extends View {
// CONSTRUCTOR
public SampleView(Context context) {
super(context);
setFocusable(true);
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
canvas.drawColor(Color.GRAY);
// you need to insert some image flower_blue into res/drawable folder
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.flower_blue);
// Best of quality is 80 and more, 3 is very low quality of image
Bitmap bJPGcompress = codec(b, Bitmap.CompressFormat.JPEG, 3);
// get dimension of bitmap getHeight() getWidth()
int h = b.getHeight();
canvas.drawBitmap(b, 10,10, paint);
canvas.drawBitmap(bJPGcompress, 10,10 + h + 10, paint);
}
}
}
build.gradle in module have higher priority then AndrodiManifest.xml
Try this.
AndroidManifest.xml have code:
build.gradle have code:
Warning in AndroidManifest.xml:
Try this.
AndroidManifest.xml have code:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="23" />
build.gradle have code:
defaultConfig {
applicationId "cz.okhelp.words"
minSdkVersion 9
targetSdkVersion 19
versionCode 107
versionName "1.0.7"
}
Warning in AndroidManifest.xml:
This targetSdkVersion value (23) is not used; it is always overridden by the value specified in the Gradle build script (19) less... (Ctrl+F1)
The value of (for example) minSdkVersion is only used if it is not specified in the build.gradle build scripts. When specified in the Gradle build scripts, the manifest value is ignored and can be misleading, so should be removed to avoid ambiguity.
Activities launcher
public class MainActivity extends ListActivity {
private class Sample {
private CharSequence title;
private Class<? extends Activity> activityClass;
public Sample(int titleResId, Class<? extends Activity> activityClass) {
this.activityClass = activityClass;
this.title = getResources().getString(titleResId);
}
@Override
public String toString() {
return title.toString();
}
}
private static Sample[] mSamples;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Instantiate the list of samples.
mSamples = new Sample[]{
new Sample(R.string.title_first_app, FirstActivity.class),
new Sample(R.string.title_second_app, SecondActivity.class),
new Sample(R.string.title_third_app, ThirdActivity.class),
};
setListAdapter(new ArrayAdapter<Sample>(this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
mSamples));
}
@Override
protected void onListItemClick(ListView listView, View view, int position, long id) {
// Launch the sample associated with this list position.
startActivity(new Intent(MainActivity.this, mSamples[position].activityClass));
}
}
onCreate in MainActivity.java
You can add to titlebar different Views by xml file.
custom_title.xml
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main.xml);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
}
You can add to titlebar different Views by xml file.
custom_title.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="//schemas.android.com/apk/res/android" android:id="@+id/screen"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/left_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Some text" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
Editace: 2016-03-02 08:15:58
Počet článků v kategorii: 396
Url:saving-activity-state-int-string-array-double-on-android