Opendata開放資料&Json
使用的開放資料:
新北市NewTaipei熱點
http://data.ntpc.gov.tw/od/data/api/04958686-1B92-4B74-889D-9F34409B272B?$format=json
一、確認網路權限
在AndroidMainfest.xml中,輸入以下程式碼,以開啟網路權限
<uses-permission android:name="android.permission.INTERNET"/>
二、加入ASYNCTASK
在MainActivity.java中(後面都在相同位置),輸入以下程式碼
class JSonTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
StringBuilder sb = new StringBuilder();
try {
URL url = new URL(params[0]);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String line = in.readLine();
while (line != null) {
Log.d("HTTP", line);
sb.append(line);
line = in.readLine();
}
}
catch (Exception e) {
}
return sb.toString();
}
protected void onPostExecute(String s){
super.onPostExecute(s);
Log.d("JSON", s);
parseJSON(s);
}
}
三、設定取得Json資料類別
輸入以下程式碼
private void parseJSON(String s){
try {
JSONArray OpenData = new JSONArray(s);
for (int i = 0; i < 5; i++){
JSONObject json = OpenData.getJSONObject(i);
Log.i("JSON"+i,json.getString("company"));
String result1 = json.getString("district");
Log.i("JSON"+i,"熱點地區:"+result1);
String result2 = json.getString("spot_name");
Log.i("JSON"+i,"熱點名稱:"+result2);
String result3 = json.getString("address");
Log.i("JSON"+i,"熱點地址:"+result3);
String result4 = json.getString("latitude");
Log.i("JSON"+i,"熱點經度:"+result4);
String result5 = json.getString("longitude");
Log.i("JSON"+i,"熱點緯度:"+result5);
}
}
catch (JSONException e){
}
}
四、設定URL與程式互相呼應
輸入以下程式碼
String URL_A = "http://data.ntpc.gov.tw/od/data/api/04958686-1B92-4B74-889D-9F34409B272B?$format=json";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new JSonTask().execute(URL_A);
}
五、最終結果
打開"Android Monitor",選取"Debug",搜尋"JSON"
Finish~~\( ̄︶ ̄)/\( ̄︶ ̄)/\( ̄︶ ̄)/
2017年5月30日 星期二
2017年5月9日 星期二
專題作業3
Facebook 按讚&分享功能
壹、前置確認
1.
如果要從APP將訊息貼到使用者的塗鴉牆,首先請在Manifest檔案中確認第一次設定Facebook SDK時的ContentProvider標籤是否有存在,如果沒有的話請加入
i.開啟AndroidManifest.xml檔,確認這行有無輸入
2.新增按鈕
i.開啟Activity_main.xml(Layout檔),增加以下程式碼
**Like Button
<com.facebook.share.widget.LikeView
android:id="@+id/likeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/login_button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
**Share Button
<com.facebook.share.widget.ShareButton
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/likeView"
android:layout_marginTop="30dp" />
貳、程式撰寫
1.Like Part
i.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**網址部分請換上想按讚的網址**
LikeView likeView = (LikeView)findViewById(R.id.likeView);
likeView.setLikeViewStyle(LikeView.Style.STANDARD);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType("https://www.facebook.com/viaalto/?ref=ts&fref=ts",LikeView.ObjectType.OPEN_GRAPH);
2.Share Part
i.分享連結中會包含以下屬性
contentURL:分享的連結
contentTitle:代表連結中的內容標題
imageURL:顯示在貼文上的縮圖圖像網址
contentDescriptipn:內容說明,2~4句
ii.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**於各段字串部分上面有制式規格,請依自況填寫**
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://www.facebook.com/viaalto/?ref=ts&fref=ts"))
.setContentTitle("Alto")
.setContentDescription("Alto 是皮革設計品牌")
.build();
ShareButton shareButton = (ShareButton)findViewById(R.id.fb_share_button);
shareButton.setShareContent(content);
參、程式執行
1.初始介面
2.Like介面
3.Share介面
4.測試結果
Finish~~v( ̄︶ ̄)y
壹、前置確認
1.
如果要從APP將訊息貼到使用者的塗鴉牆,首先請在Manifest檔案中確認第一次設定Facebook SDK時的ContentProvider標籤是否有存在,如果沒有的話請加入
i.開啟AndroidManifest.xml檔,確認這行有無輸入
2.新增按鈕
i.開啟Activity_main.xml(Layout檔),增加以下程式碼
**Like Button
<com.facebook.share.widget.LikeView
android:id="@+id/likeView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/login_button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
**Share Button
<com.facebook.share.widget.ShareButton
android:id="@+id/shareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/likeView"
android:layout_marginTop="30dp" />
貳、程式撰寫
1.Like Part
i.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**網址部分請換上想按讚的網址**
LikeView likeView = (LikeView)findViewById(R.id.likeView);
likeView.setLikeViewStyle(LikeView.Style.STANDARD);
likeView.setAuxiliaryViewPosition(LikeView.AuxiliaryViewPosition.INLINE);
likeView.setObjectIdAndType("https://www.facebook.com/viaalto/?ref=ts&fref=ts",LikeView.ObjectType.OPEN_GRAPH);
2.Share Part
i.分享連結中會包含以下屬性
contentURL:分享的連結
contentTitle:代表連結中的內容標題
imageURL:顯示在貼文上的縮圖圖像網址
contentDescriptipn:內容說明,2~4句
ii.打開Java主程式中的MainActivity.java,輸入以下程式碼(在onCreate下)
**於各段字串部分上面有制式規格,請依自況填寫**
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse("https://www.facebook.com/viaalto/?ref=ts&fref=ts"))
.setContentTitle("Alto")
.setContentDescription("Alto 是皮革設計品牌")
.build();
ShareButton shareButton = (ShareButton)findViewById(R.id.fb_share_button);
shareButton.setShareContent(content);
參、程式執行
1.初始介面
3.Share介面
4.測試結果
Finish~~v( ̄︶ ̄)y
訂閱:
文章 (Atom)