TabWidget 中的 Android 微调器错误令牌



在这方面,我对Android和Java相当陌生,并且遇到了上下文问题 - 我在另一个TabWidget中的TabWidget中有一个微调器,在代码端我有一个主类,它是一个TabActivity,其中我将特定选项卡的意图设置为另一个TabActivity,其中我将选项卡的意图设置为活动,我将内容视图设置为布局我有我的微调器(希望这是有道理的)。 每当我单击微调器并尝试启动微调器的对话框时,它都会给我一个错误的令牌错误。 从我所读到的内容来看,这是因为我的微调器具有错误的上下文,但由于我没有主动设置上下文(我在 XML 中创建微调器),并且我似乎找不到设置微调器上下文的方法或公开属性......好吧,你明白了,尽管阅读了其他人的类似问题,但我还是迷失了这个。 这是我的代码:

主要:

public class Star_Android_Activity extends TabActivity 
{
    public static void main(String[] args) {
    }
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        TabHost tabHost = getTabHost();  // The activity TabHost
        TabHost.TabSpec spec;  // Resusable TabSpec for each tab
        Intent intent;  // Reusable Intent for each tab
        // Create an Intent to launch an Activity for the tab (to be reused)
        intent = new Intent().setClass(this, Pick_Activity.class);
        // Initialize a TabSpec for each tab and add it to the TabHost
        spec = tabHost.newTabSpec("pick").setIndicator(LinearLayout.inflate(this,R.layout.tab_header_pick, null))
            .setContent(intent);
        tabHost.addTab(spec);
        tabHost.setCurrentTab(0);
    }
}

子选项卡:

public class Pick_Activity extends TabActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.pick);
            TabHost tabHost = getTabHost();  // The activity TabHost
            TabHost.TabSpec spec;  // Reusable TabSpec for each tab
            Intent intent;  // Reusable Intent for each tab
            intent = new Intent().setClass(this, Pending_Activity.class);
            spec = tabHost.newTabSpec("pending").setIndicator(LinearLayout.inflate(this,R.layout.tab_header_pending, null))
                          .setContent(intent);
            tabHost.addTab(spec);
            tabHost.setCurrentTab(0);
    }
}

儿童活动:

public class Pending_Activity extends Activity 
{
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pending);
        addSpinnerValues();
    }
    public void addSpinnerValues()
    {
        Spinner spn = (Spinner)findViewById(R.id.spnPick);
        List<String> list = new ArrayList<String>();
        list.add("list 1");
        list.add("list 2");
        list.add("list 3");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spn.setAdapter(dataAdapter);    
    }
}

Main和Pick的xml文件基本上是hello tabwidget教程的副本,而我的待定.xml只是一个包含几个按钮和我的微调器的FrameLayout。 如果有帮助,我可以发布代码,但我在发布代码时遇到了问题(也许是字符限制)。

有关如何正确设置我的上下文的任何帮助(如果不麻烦,请提供简短的解释)将不胜感激!

花了我一段时间,但我找到了另一个包含部分解决方案的帖子,至少对我的目的有很大帮助......我只是改变了我的:

setContentView(R.layout.pending); 

自:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.pending, null); 
    this.setContentView(viewToLoad); 

因此,我的待定.xml页面的上下文被设置为父级的上下文......虽然我承认,我真的不明白为什么不一定是父母的父母,为什么只有父母本身就是一个孩子是可以接受的......希望给我一些时间,我会开始理解它。

相关内容

  • 没有找到相关文章

最新更新