有誰知道該怎麼做這個片段選項卡問題?片段選項卡奇怪的崩潰
我是一個很沒經驗的新手程序員,特別是在Android應用程序開發的世界。我最近開始片段選項卡的項目,我發現,當我試圖訪問一個對象(因爲缺乏一個更好的詞,但我的意思是像一個TextView,微調,EditText上,等)類似
TextView textBox = (TextView) getView().findViewById(R.id.scouter_name_box);
編譯器發現沒有錯誤,但應用程序崩潰。我試圖將這一行代碼放在一個函數中,在片段的本體中(在onCreate()之後)和onCreate()的末尾。這沒有幫助。錯誤日誌也沒有說什麼。
此外,當我註釋掉這一行時,應用程序的其餘部分無縫運行。該應用沒有任何其他活動,除了MainActivity和三個選項卡片段。
我能做些什麼來訪問TEXTVIEWS,SPINNERS等?
也如我所說我很新。如果你需要更好的解釋,請問,如果我一開始不明白你的意思,我很抱歉。
我們都必須開始某處
請幫幫忙, 並預先感謝您
標籤XML文件:
<RelativeLayout 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" >
<TextView android:id="@+id/input_scouter_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="Scouter Name:"
android:textSize="25sp"
android:textStyle="bold" />
<Spinner android:id="@+id/choose_scouter_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/input_scouter_name"
android:entries="@array/scouter_name_list" />
</RelativeLayout>
MainActivity Java文件:
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
// Declare Tab Variable
Tab tab;
ScoutingData ScoutData;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Create the actionbar
ActionBar actionBar = getActionBar();
// Hide Actionbar Icon
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.drawable.red_and_blue_frisbees);
// Hide Actionbar Title
actionBar.setDisplayShowTitleEnabled(true);
// Create Actionbar Tabs
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create Home Tab
tab = actionBar.newTab().setTabListener(new FragmentsTab0());
// Set Tab Title
tab.setText("General");
actionBar.addTab(tab);
// Create first Tab
tab = actionBar.newTab().setTabListener(new FragmentsTab1());
// Set Tab Title
tab.setText("Autonomous");
actionBar.addTab(tab);
// Create Second Tab
tab = actionBar.newTab().setTabListener(new FragmentsTab2());
// Set Tab Title
tab.setText("Teleop");
actionBar.addTab(tab);
// Create Third Tab
tab = actionBar.newTab().setTabListener(new FragmentsTab3());
// Set Tab Title
tab.setText("Endgame");
actionBar.addTab(tab);
}
}
標籤Java文件:
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.widget.Spinner;
public class FragmentsTab0 extends Fragment implements ActionBar.TabListener {
private Fragment mFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from tab0fragment.xml
getActivity().setContentView(R.layout.tab0fragment);
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
mFragment = new FragmentsTab0();
// Attach tab0fragment.xml layout
ft.add(android.R.id.content, mFragment);
ft.attach(mFragment);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
// Remove tab0fragment.xml layout
ft.remove(mFragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
//Heeere's the Problem
Spinner scouterName = (Spinner) getView().findViewById(R.id.choose_scouter_name);
}
我假設我用這個新的onCreateView()函數替換我的onCreate()函數?在其他功能之後,我也擺脫了片段主體中的Spinner調用。我導入了所有新的必要項目,但仍然出現「nomap」(來自R.layout.nomap)不是字段的錯誤。有沒有修復或我可以用什麼替換?但感謝您的幫助。 – Live2Code 2013-05-02 21:04:01
是的。刪除你的onCreate()方法,並用我的onCreateView()方法替換它。而關於nomap的錯誤是我的錯。我已經用適當的代碼更新了這篇文章。 – 2013-05-02 21:58:56
當我嘗試此代碼時,出現錯誤_「此方法必須返回類型視圖的結果」_。如果它意味着什麼,我已經添加了我的MainActivity代碼。但是,我也注意到'if(container == null)'你返回null。但方法是鍵入View。它不應該在任何時候返回一個視圖?也許在'view = inflater.inflate(R.layout.tab0fragment,container,false)之後''但無論如何感謝 – Live2Code 2013-05-05 17:46:16