有谁知道该怎么做这个片段选项卡问题?片段选项卡奇怪的崩溃
我是一个很没经验的新手程序员,特别是在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