一、String.valueOf() & Object.toString()
- String.valueOf()
如果你給他String.valueOf("null"),我們得到的會是null這個字串
- Object.toString()
二、Integer.valueOf() & Integer.parseInt()
- Integer.valueOf()
他會回傳的是一個Object ,new Integer()
android:parentActivityName="com.example.myfirstapp.MainActivity"
<activity android:name="com.example.myfirstapp.AboutActivity" android:label="@string/title_activity_display_message" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity>

private static final String url ="http://rate.bot.com.tw/Pages/Static/UIP003.zh-TW.htm";
public void getInfo(){
try {
Document doc = Jsoup.connect(url).get();
doc.select("td.titleleft").text();
}catch(Exception e){
}
}
※注意:public class RateItem {
private String Currency;
private String CashBuyRate;
private String CashSoldRate;
private String SpotBuyRate;
private String SpotSoldRate;
public RateItem(String Currency,String CashBuyRate,String CashSoldRate,String SpotBuyRate,String SpotSoldRate){
this.Currency = Currency;
this.CashBuyRate = CashBuyRate;
this.CashSoldRate = CashSoldRate;
this.SpotBuyRate = SpotBuyRate;
this.SpotSoldRate = SpotSoldRate;
}
public RateItem(){
this.Currency = "";
this.CashBuyRate = "";
this.CashSoldRate = "";
this.SpotBuyRate = "";
this.SpotSoldRate = "";
}
public String getSpotSoldRate() {
return SpotSoldRate;
}
public void setSpotSoldRate(String spotSoldRate) {
SpotSoldRate = spotSoldRate;
}
public String getSpotBuyRate() {
return SpotBuyRate;
}
public void setSpotBuyRate(String spotBuyRate) {
SpotBuyRate = spotBuyRate;
}
public String getCashSoldRate() {
return CashSoldRate;
}
public void setCashSoldRate(String cashSoldRate) {
CashSoldRate = cashSoldRate;
}
public String getCashBuyRate() {
return CashBuyRate;
}
public void setCashBuyRate(String cashBuyRate) {
CashBuyRate = cashBuyRate;
}
public String getCurrency() {
return Currency;
}
public void setCurrency(String currency) {
Currency = currency;
}
}
public class MainActivity extends AppCompatActivity { private ListView mListView; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast.makeText(this,"onCreate0",Toast.LENGTH_SHORT).show(); mListView = (ListView)findViewById(R.id.listView); //建立Thread new Thread(runnable).start(); } private static final String url ="http://rate.bot.com.tw/Pages/Static/UIP003.zh-TW.htm"; private String UpdateTime; private ListRateList; Runnable runnable = new Runnable(){ @Override public void run() { try { Document doc = Jsoup.connect(url).get(); RateList = new ArrayList //去處裡字串 UpdateTime = Temp.substring(12); } catch (IOException e) { e.printStackTrace(); } //利用handler去更新View handler.sendEmptyMessage(0); } }; @SuppressLint("HandlerLeak") Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); setListViewAdapter(); } }; private TextView UpdateTimeText; public void setListViewAdapter(){ LayoutInflater inflater = LayoutInflater.from(this); //include的TextView直接find就能找到了不需要透過inflater建立View UpdateTimeText = (TextView)findViewById(R.id.UpdateTimeHeader); UpdateTimeText.setText("更新時間:"+ UpdateTime); mListView.setAdapter(new ListViewAdapter(this,RateList)); //原本是直接加入header但為了固定位置,所以直接在xml中include header //View header = inflater.inflate(R.layout.listview_header, mListView, false); //mListView.addHeaderView(header, null, false); }(); int i = 0; for(Element title : doc.select("td.titleLeft")){ RateItem mRateItem = new RateItem(); //取得幣別並存入 mRateItem.setCurrency(title.text()); //匯率為一次四筆所以一次抓出並存入 if (i < doc.select("td.decimal").size()){ //利用eq()可以指定為第幾筆資料 mRateItem.setCashBuyRate(doc.select("td.decimal").eq(i).text()); mRateItem.setCashSoldRate(doc.select("td.decimal").eq(i+1).text()); mRateItem.setSpotBuyRate(doc.select("td.decimal").eq(i+2).text()); mRateItem.setSpotSoldRate(doc.select("td.decimal").eq(i+3).text()); i+=4; } RateList.add(mRateItem); } //更新時間的抓取 String Temp = doc.select("td[style=width:326px;text-align:left;vertical-align:top;color:#0000FF;font-size:11pt;font-weight:bold;]").text();
public class ListViewAdapter extends BaseAdapter {
private LayoutInflater inflater;
private Context mContext;
private List RateLists;
public ListViewAdapter(Context mContext,List RateList){
inflater = LayoutInflater.from(mContext);
this.mContext = mContext;
this.RateLists = RateList;
}
@Override
public int getCount() {
return RateLists.size();
}
@Override
public Object getItem(int i) {
return RateLists.get(i);
}
private static class ViewHolder{
TextView CurrencyText;
TextView CashBuyText;
TextView CashSoldText;
TextView SpotBuyText;
TextView SpotSoldText;
public ViewHolder(TextView CurrencyText, TextView CashBuyText , TextView CashSoldText,TextView SpotBuyText , TextView SpotSoldText ){
this.CurrencyText = CurrencyText;
this.CashBuyText = CashBuyText;
this.CashSoldText = CashSoldText;
this.SpotBuyText = SpotBuyText;
this.SpotSoldText = SpotSoldText;
}
}
@Override
public long getItemId(int i) {
return RateLists.indexOf(i);
}
@Override
public View getView(int position, View ConvertView, ViewGroup viewGroup) {
ViewHolder holder = null;
if(ConvertView == null){
ConvertView = inflater.inflate(R.layout.listview_custom,viewGroup,false);
holder = new ViewHolder(
(TextView) ConvertView.findViewById(R.id.CurrencyTextView),
(TextView) ConvertView.findViewById(R.id.CashBuyTextView),
(TextView) ConvertView.findViewById(R.id.CashSoldTextView),
(TextView) ConvertView.findViewById(R.id.SpotBuyTextView),
(TextView) ConvertView.findViewById(R.id.SpotSoldTextView)
);
//保存狀態避免一直重新建立還要find id
ConvertView.setTag(holder);
}else{
//取出狀態
holder = (ViewHolder) ConvertView.getTag();
}
RateItem mRateItem = (RateItem)getItem(position);
holder.CurrencyText.setText(mRateItem.getCurrency());
holder.CashBuyText.setText(mRateItem.getCashBuyRate());
holder.CashSoldText.setText(mRateItem.getCashSoldRate());
holder.SpotBuyText.setText(mRateItem.getSpotBuyRate());
holder.SpotSoldText.setText(mRateItem.getSpotSoldRate());
return ConvertView;
}
}
-?xml version="1.0" encoding="utf-8"?-
-TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:stretchColumns="*"
android:layout_width="match_parent"
android:layout_height="match_parent"-
-TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"-
-TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:padding="3dp"
android:textSize="12sp"
android:gravity="left"
android:id="@+id/CurrencyTextView" -
-TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:padding="3dp"
android:gravity="center"
android:id="@+id/CashBuyTextView" -
-TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:padding="3dp"
android:gravity="center"
android:id="@+id/CashSoldTextView" -
-TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:padding="3dp"
android:gravity="center"
android:id="@+id/SpotBuyTextView" -
-TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:padding="3dp"
android:gravity="center"
android:id="@+id/SpotSoldTextView" -
-/TableRow-
-/TableLayout-
-?xml version="1.0" encoding="utf-8"?-
-TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="*"-
-LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dp"-
-TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="更新時間:"
android:gravity="center"
android:padding="3dp"
android:id="@+id/UpdateTimeHeader" /-
-/LinearLayout-
-TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:padding="5dp"-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text=""
android:padding="3dp"
android:id="@+id/textView" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="現金匯率"
android:id="@+id/CashRateHeader"
android:layout_span="2"
android:layout_gravity="center" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="即期匯率"
android:layout_span="2"
android:layout_gravity="center"
android:id="@+id/SpotRateHeader" /-
-/TableRow-
-TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="幣別"
android:layout_gravity="center"
android:id="@+id/CurrencyHeader" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="買入"
android:layout_gravity="center"
android:id="@+id/CashBuyHeader" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="賣出"
android:layout_gravity="center"
android:id="@+id/CashSoldHeader" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="買入"
android:layout_gravity="center"
android:id="@+id/SpotBuyHeader" /-
-TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="賣出"
android:layout_gravity="center"
android:id="@+id/SpotSoldHeader" /-
-/TableRow-
-/TableLayout-
-LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"-
-include layout="@layout/listview_header"/-
-ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/listView"
/-
-/LinearLayout-
private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
// Set up ShareActionProvider's default share intent
MenuItem shareItem = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
setShareIntent(setIntent());
return true;
}
private Intent setIntent(){
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "分享的文字");
return sendIntent;
}
private void setShareIntent(Intent shareIntent) {
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(shareIntent);
}
}
OnShareTargetSelectedListener

