上傳以前一個用來尋找北方的app,修改為eclipse更新過後格式,並且加上也可以尋找天頂的功能,我想對於觀星族或是有定位需求的人們應該會很方便。
下載網址: 點擊我。
QR Code:
首先,我們必須要有個開發者帳號,如何申請?請參考這裡或是這裡也有詳細的教學。
- 最重要的是我們必須要先把apk弄成可以上傳的格式,我們先看這張圖:
首先對著專案點選右鍵,
會在androidTools中會找到Export Signed Application Package的選項,
點選之後會需要一個keyStore輸入,其中會提示需要創立新的還是使用舊的,
如果沒有創立過的朋友,建議就弄個新的唄。記得創立的密碼要記住。
都輸入完畢之後,最後會選擇匯出的位置,把這個位置記起來。 - 進入開發人員的後台,選定剛剛那個位置的apk上傳。
這裡要注意,不是專案裡面bin資料夾的那個apk喔!(要不會不給上傳) - 你也有可能會遇到他說會有未知的錯誤,要我們稍等,這好像很多人遇過,
直接重新登入,或是等一下即可。 - 到這裡結束了嗎?錯!!
上架之前還有一堆設定要做,包括要給高解析度應用程式圖示,以及如果有宣傳文字就必須要有宣傳圖片等等,最重要的還有各國的翻譯(當然是可以用google翻譯啦..) - 高解析度應用程式圖示格式如下:
512 x 512
32 位元 PNG 或 JPEG
大小上限:1024 KB
我被他搞很久... - 當設定完成之後,按下"發布",系統會自動檢查有那裡沒有填好的。
確定都可以準備發布之前,要注意的,
在apk上傳的頁面那邊,要記得啟用我們上傳的apk,
因為之後版本更新的動作可以用來配合發布的版本管理動作。
所以這個動作千萬不要忘記哩! - 發布之後,不會馬上搜尋到這個app,
大概是在做系統檢查吧?大概要等幾個小時之後才會有內容出現。
以上。
接著我們來放個最近在玩的Fragment,我快被他搞死了!哈哈!
這是DialogFragment,參考Develop的作法實作的一個,
按下返回按鍵即會跳處確定離開的詢問dialog。
首先我們必須架構一個DialogFragment.java檔,其中有些string.xml的內容可自行發揮,我便不放上來,然後在點擊事件中,會與Activity互動,這邊先不用急著除錯,等等在Acrivity中實作哩:
package susan.idea.compass_north_v001;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
public class EndMessageFragment extends DialogFragment implements
android.content.DialogInterface.OnClickListener {
/**
* 初始化這個DialogFragment
*
* @param tagMap
* 必須是一個String[2][n]的形式包裝的Array 作為傳入參數(HashMap形式)用途.
* @return 返回一個 DialogFragment.
*/
public static EndMessageFragment newInstance(String[]... tagMap) {
EndMessageFragment frag = new EndMessageFragment();
Bundle args = new Bundle();
if (tagMap != null && tagMap.length == 2 && tagMap[0].length > 0) {// 檢查有無符合格式
for (int n = 0; n < tagMap[0].length; n++) {
args.putString(tagMap[0][n], tagMap[1][n]);
frag.setArguments(args);
}
}
return frag;
}
@Override
public void dismiss() {
// TODO Auto-generated method stub
super.dismiss();
}
@Override
public void show(FragmentManager manager, String tag) {
// TODO Auto-generated method stub
super.show(manager, tag);
}
@Override
public void onCancel(DialogInterface dialog) {
// TODO Auto-generated method stub
super.onCancel(dialog);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Builder mBuilder = new Builder(getActivity());
mBuilder.setTitle(R.string.dialog_title);
mBuilder.setMessage(R.string.msg_exit);
mBuilder.setPositiveButton(android.R.string.ok, this);
mBuilder.setNegativeButton(android.R.string.cancel, this);
return mBuilder.create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
((MainActivity)getActivity()).doPositiveClick();
break;
case DialogInterface.BUTTON_NEGATIVE:
((MainActivity)getActivity()).doNegativeClick();
break;
default:
break;
}
}
}
接著,我們要在Activity中調用,必須要注意的是,因為我們使用Fragment,
所以相對也要使用FragmentActivity(如果有錯或是有其他方法請指正,感恩)。
把default的Activity改成FragmentActivity其實很簡單,就直接改名字就好,因為方法都一樣(繼承來的著唄!),改完之後把import錯誤的內容改一改就不會有error message了。
因為我是設定在按下返回按鍵之後,所以程式碼寫在onBackPressed()之中:
@Override
public void onBackPressed() {
showDialog("dialog",EndMessageFragment.newInstance());
// super.onBackPressed();
}
/** 顯示DialogFragment 注意需要運行在FragmentActivity環境下 */
void showDialog(final String DIALOG_TAG,DialogFragment mFragment) {
// DialogFragment.show() will take care of adding the fragment
// in a transaction. We also want to remove any currently showing
// dialog, so make our own transaction and take care of that here.
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
Fragment prev = getSupportFragmentManager().findFragmentByTag(
DIALOG_TAG);
if (prev != null) {
ft.remove(prev);
}
ft.addToBackStack(null);
// Create and show the dialog.
mFragment.show(ft, DIALOG_TAG);
}
public void doPositiveClick() {
finish();
}
public void doNegativeClick() {
}
這裡實做了三個方法,一個是避免dialog一直重複跳出(開關的方法),另外兩個是dialog的點擊事件。自己的經驗是,把點擊事件寫在fragment裡面其實也沒差,不過官方的文檔既然都這樣寫了,我們就如實照辦啦~
以上。下台一鞠躬,
沒有留言:
張貼留言
你好,我是小書,如果文章內容有錯誤,或是看到有建議以及任何感想時,歡迎提出分享,我們一起學習一起努力。