up button 和 back button的比較:
up: 回到前一頁或是某個頁面
back: 回上一步,比方收起鍵盤
顯示up button
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
判斷up button 被點選
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
this.finish();
return true;
}
return super.onOptionsItemSelected(item);
}
2013年10月25日 星期五
2013年10月24日 星期四
讓EditText的cursor color等於文字顏色
設定 textCursorDrawable
<EditText
android:layout_width="30dp"
android:layout_height="44dp"
android:textColor="#000000"
android:textSize="14sp"
android:paddingLeft="6dp"
android:textCursorDrawable="@null"
/>
<EditText
android:layout_width="30dp"
android:layout_height="44dp"
android:textColor="#000000"
android:textSize="14sp"
android:paddingLeft="6dp"
android:textCursorDrawable="@null"
/>
delete file
ex:
File file = new File(context.getFilesDir(), "plan.txt");
try {
file.getCanonicalFile().delete();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
File file = new File(context.getFilesDir(), "plan.txt");
try {
file.getCanonicalFile().delete();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2013年10月23日 星期三
back多層activity
ex:
A -> B - > C
想要從C返回A
C.java:
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
AndroidManifest.xml:
<activity
android:name="com.passionbean.fitmi.A"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask"
>
</activity>
A -> B - > C
想要從C返回A
C.java:
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
AndroidManifest.xml:
<activity
android:name="com.passionbean.fitmi.A"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask"
>
</activity>
2013年10月22日 星期二
防止back鍵作用
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
/*
* Use this hook instead of onBackPressed(), because onBackPressed()
* is not available in API 4.
*/
return true;
}
return super.onKeyDown(keyCode, event);
}// onKeyDown()
設定action bar的title
XML:
利用android:label
ex:
<activity
android:name=".RegisterActivity"
android:label="註冊新帳號"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"
>
JAVA:
ActionBar ab = getActionBar();
ab.setTitle("My Title");
利用android:label
ex:
<activity
android:name=".RegisterActivity"
android:label="註冊新帳號"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"
>
JAVA:
ActionBar ab = getActionBar();
ab.setTitle("My Title");
2013年10月21日 星期一
讀檔產生圖片Bitmap
File storageDir = new File(
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES
),
"FitMi"
);
File imageFile = new File(storageDir.getPath(), "test.jpg");
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
2013年10月15日 星期二
存取專案裡assets下的檔案
ex:
AssetManager assetManager = getAssets();
try {
InputStream input = assetManager.open("Message.plist");
} catch (Exception e) {
e.printStackTrace();
}
2013年10月14日 星期一
當按下enter時收起鍵盤
EditText nameEditText = (EditText)this.findViewById(R.id.editBasicNameEditText);
OnKeyListener keyboardListener = new OnKeyListener()
{
/**
* This listens for the user to press the enter button on
* the keyboard and then hides the virtual keyboard
*/
public boolean onKey(View arg0, int arg1, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ( (event.getAction() == KeyEvent.ACTION_DOWN ) &&
(arg1 == KeyEvent.KEYCODE_ENTER) )
{
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
return true;
}
return false;
}
} ;
nameEditText.setOnKeyListener(keyboardListener);
2013年10月1日 星期二
AChartEngine
http://code.google.com/p/achartengine/
1. 在折線圖上顯示出每個點的值
((XYSeriesRenderer) renderer.getSeriesRendererAt(0)).setDisplayChartValues(true);
2. not show legend item
((XYSeriesRenderer) renderer.getSeriesRendererAt(0)).setShowLegendItem(false);
3. 改變X, Y軸上label的color
ex:
renderer.setYLabelsColor(0, Color.BLACK);
4. 設定線條顏色
int[] colors = new int[] { Color.rgb(30, 155, 165)};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE };
renderer = buildRenderer(colors, styles);
5. 設定線條粗細
renderer = buildRenderer(colors, styles);
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
XYSeriesRenderer seriesRenderer = ((XYSeriesRenderer) renderer.getSeriesRendererAt(i));
seriesRenderer.setLineWidth(3f);
}
6. 設定point
renderer.setPointSize(10);
1. 在折線圖上顯示出每個點的值
((XYSeriesRenderer) renderer.getSeriesRendererAt(0)).setDisplayChartValues(true);
2. not show legend item
((XYSeriesRenderer) renderer.getSeriesRendererAt(0)).setShowLegendItem(false);
hide 紅色圈起的部分
3. 改變X, Y軸上label的color
ex:
renderer.setYLabelsColor(0, Color.BLACK);
4. 設定線條顏色
int[] colors = new int[] { Color.rgb(30, 155, 165)};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE };
renderer = buildRenderer(colors, styles);
5. 設定線條粗細
renderer = buildRenderer(colors, styles);
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
XYSeriesRenderer seriesRenderer = ((XYSeriesRenderer) renderer.getSeriesRendererAt(i));
seriesRenderer.setLineWidth(3f);
}
6. 設定point
renderer.setPointSize(10);
訂閱:
文章 (Atom)