我個人常看到的
@Nullable
@JsonField
@SerializedName
下面參考網站有更詳細的
參考網站
https://juejin.im/entry/589a65e81b69e60059a7e555
如果遇上Nullable無法編譯(第六種解決方案不錯):
我個人常看到的
@Nullable
@JsonField
@SerializedName
下面參考網站有更詳細的
參考網站
https://juejin.im/entry/589a65e81b69e60059a7e555
如果遇上Nullable無法編譯(第六種解決方案不錯):
先寫一個內部類別
class MyInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
// 依指定layout檔,建立地標訊息視窗View物件
View infoWindow = getLayoutInflater().inflate(R.layout.markerlayout, null);
// 顯示地標title
TextView title = ((TextView) infoWindow.findViewById(R.id.txtTitle));
title.setText(marker.getTitle());
// 顯示地標snippet
TextView snippet = ((TextView) infoWindow.findViewById(R.id.txtSnippet));
snippet.setText(marker.getSnippet());
return infoWindow;
}
}
在oncreat中定義完Map、地點、之類...後如果要呼叫自訂的marker就+下面這句
mMap.setInfoWindowAdapter(new MyInfoWindowAdapter());
寫HttpClient的時候出現以下錯誤
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. >
com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/DEPENDENCIES File1:
GOOGLE一陣子後終於找到原因,SDK23以上不支援
http://maksim28.blogspot.tw/2013/01/android-timepicker.html
官方教學\
對res右鍵


<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/new_game" android:icon="@mipmap/ic_launcher" android:title="按鈕1" /> <item android:id="@+id/help" android:icon="@mipmap/ic_launcher" android:title="按鈕2" /> </menu>
前言
聽聞Android5.0有推出CardView,不過我這個例子還是自定義的,可以做其他改變(改成橢圓?)。在研究期間還遇上了ListView item高度問題,
所以裡面還有放自定義listView修正滾軸感應方法、大item點擊事件以及內部元件Button點擊事件!
關鍵句我認為是在CardActivity.java(相當於MainActivity)內的setAdapter後呼叫方法:
.前言
很久之前就想要找一個好看的Dialog來做,以往都用DialogFregment,但是我覺得還是別人寫的好啊...
因此找到了範例sweet-alert-dialog,它需要其他的類別庫materialish-progress ,我做成了Eclipse版的提供給各位參考
View post on imgur.comIntent intent = new Intent(MainActivity.this, AppleFragment.class); startActivity(intent);
進階可參考此篇[Andriod] 透過Intent轉換Activity
以下這幾篇寫很仔細了
Android 使用 Fragment 建立 Tab 取代 TabActivity
給TabHost加上ViewPager滑動效果_Android
package com.example.user.tabexample; import java.util.ArrayList; import java.util.List; import android.app.LocalActivityManager; import android.app.TabActivity; import android.content.Context; import android.content.Intent; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.TabHost; import android.widget.TabHost.OnTabChangeListener; import android.widget.TextView; public class MainActivity extends TabActivity { //頁卡內容 private ViewPager mPager; // Tab頁面列表 private List<View> listViews; // 當前頁卡編號 private LocalActivityManager manager = null; private final Context context = MainActivity.this; private TabHost mTabHost; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); mTabHost = getTabHost(); mTabHost.addTab(mTabHost.newTabSpec("0").setIndicator( "正在聽").setContent( new Intent(this, AppleFragment.class))); mTabHost.addTab(mTabHost.newTabSpec("1").setIndicator( "本地聽").setContent( new Intent(this, FacebookFragment.class))); /* mTabHost.addTab(mTabHost.newTabSpec("2").setIndicator( "網絡聽").setContent( new Intent(this, CActivity.class)));*/ mTabHost.setCurrentTab(0); //tabhost改變同樣改變ViewPager的內容 mTabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { mPager.setCurrentItem(Integer.parseInt(tabId)); } }); manager = new LocalActivityManager(this, true); manager.dispatchCreate(savedInstanceState); InitViewPager(); } private void InitViewPager() { mPager = (ViewPager) findViewById(R.id.vPager); listViews = new ArrayList<View>(); MyPagerAdapter mpAdapter = new MyPagerAdapter(listViews); Intent intent = new Intent(context, AppleFragment.class); listViews.add(getView("A", intent)); Intent intent2 = new Intent(context, FacebookFragment.class); listViews.add(getView("B", intent2)); /*Intent intent3 = new Intent(context, CActivity.class); listViews.add(getView("C", intent3));*/ mPager.setAdapter(mpAdapter); mPager.setCurrentItem(0); mPager.setOnPageChangeListener(new MyOnPageChangeListener()); } public class MyPagerAdapter extends PagerAdapter { public List<View> mListViews; public MyPagerAdapter(List<View> mListViews) { this.mListViews = mListViews; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(mListViews.get(arg1)); } @Override public void finishUpdate(View arg0) { } @Override public int getCount() { return mListViews.size(); } @Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(mListViews.get(arg1), 0); return mListViews.get(arg1); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (arg1); } @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } @Override public void startUpdate(View arg0) { } } public class MyOnPageChangeListener implements OnPageChangeListener { @Override public void onPageSelected(int arg0) { switch (arg0) { case 0: mTabHost.setCurrentTab(0); break; case 1: mTabHost.setCurrentTab(1); break; /* case 2: mTabHost.setCurrentTab(2); break;*/ } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } } private View getView(String id,Intent intent) { return manager.startActivity(id, intent).getDecorView(); } }====================================