私はその点でAndroidとJavaにかなり慣れていないので、コンテキストの問題を抱えています-別のTabWidget内のTabWidget内にSpinnerがあり、コード側には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 チュートリアルのコピーであり、私の pending.xml は、いくつかのボタンと私のスピナーを含む単なる FrameLayout です。役立つ場合はコードを投稿できますが、コードの投稿に問題がありました (おそらく文字制限)。
私のコンテキストを適切に設定する方法についてのヘルプ(および面倒でなければ簡単な説明)をいただければ幸いです。