買了一本初階的教學回來,按著教學將開發環境建置好,原本以為可以很順利的寫程式,想趕快下去實際的撰寫和嘗試。但不知道是版本更新,還是本身對系統實在不了解,我明明沒做過什麼設定變更,但一開始遇到R檔的問題,現在又遇到XML生成activity_main.xml和fragment_main.xml的問題。
網路上的教學,多半都只有activity_main.xml,我卻看著自己的專案,白白多了一個fragment_main.xml,而且fragment_main.xml還自己寫著”Hello Word”,很明顯就是和別人從activity_main.xml不一樣。我很無助,不知道到底要怎麼把按鍵布局,或者到底要把程式碼寫在哪裡好。
就算我把按鈕都寫在fragment_main.xml,但程式只要寫到有關於執行的部分,就會出錯,這實在讓我感到萬分挫折,我只能流著口水看著教學影片一次又一次的跑程式,我卻只有錯誤、紅波浪、紅叉陪著我。
嘗試許多方式,也搜尋很久,終於找到了解決方案,並且實際操作之後,真的成功。
1. 刪除fragment_main.xml
2. 在activity_main.xml,刪除裡面的內容,並且切換到Graphy Layout,放進一個LinearLayout
3. 對MainActivity.java,可以刪除以下有紅色粗體的內容,再把MainActivity的繼承ActionBarActivity,改為Activity,如: MainActivity extends Activity
以下是MainActivity.java要刪除的內容:
package com.zmcorp.weightcalculator;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
}
我之後嘗試設定一個button,然後加上監聽器,每點擊一次就+1,有在虛擬機上面呈現出來。
留言列表