現在のアクティビティをロードしたくないという問題があります
Activity currentActivity = getCurrentActivity();
別のアクティビティをロードしたい...
TabActivity MainTabView = (TabActivity) getParent();
TabHost tabhost = MainTabView.getTabHost();
tabhost.setCurrentTab(1); // Artikelliste
Activity currentActivity = MainActivity; // what i want to load is called MainActivity (doesn't work)
((MainActivity) currentActivity).reload("22"); // Call the public function of MainActivity.
タブ アクティビティ 1 の内容をリロードしたい。タブに切り替えて、リストビュー コントロールの内容をリロードします。
私はアンドロイド開発の新人です。私が欲しいものが明確であることを願っています:-)
MainActivity のリロード機能、これが後で機能するかどうかはわかりません。
public void reload(String strCatID) {
// Artikeldatenbank laden als Thread
downloadJTLShopArtikeldatenbank("http://www.xyz.com/connector/jtl-shop-connector.php?modus=artikelliste&iCatID="+ strCatID);
// Artikel öffnen im Shop
lvwArtikel = (ListView) findViewById(R.id.lvwArtikelansicht);
lvwArtikel.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
View grid;
if (view == null) {
grid = null;
} else {
grid = view;
}
// Abrufen aus dem aktiven Listview Eintrag (ArtikelID)
TextView txtArtikelID = (TextView) grid.findViewById(R.id.txtArtikelID);
// Neues Intent öffnen und die aktuelle Kategorie ID übergeben
Intent i = new Intent(MainActivity.this, MainItemsDetail.class);
i.putExtra("iArtikelID", txtArtikelID.getText());
/* tabHost.addTab(tabHost.newTabSpec("tab-2")
.setIndicator("Artikel")
.setContent(i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.setContent(i)); */
//.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
startActivityForResult(i, 0);
}
});
}
必要なタブを含む MainTabView
final TabHost tabHost = getTabHost();
// Kategorieliste
TabHost.TabSpec ts1 = tabHost.newTabSpec("tab-1");
ts1.setIndicator("Kategorie");
Intent intent1 = new Intent(MainTabView.this,MainCategory.class);
//ts1.setContent(intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
ts1.setContent(intent1);
tabHost.addTab(ts1);
//progressDialog = ProgressDialog.show(MainTabView.this, "",
// "Kategorien werden geladen");
// Artikelliste
TabHost.TabSpec ts2 = tabHost.newTabSpec("tab-2");
ts2.setIndicator("Artikel");
Intent intent2 = new Intent(MainTabView.this,MainActivity.class);
//ts2.setContent(intent2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
ts2.setContent(intent2);
tabHost.addTab(ts2);
//progressDialog = ProgressDialog.show(MainTabView.this, "",
// "Artikel werden geladen");
// Warenkorb hinzufügen
TabHost.TabSpec ts3 = tabHost.newTabSpec("tab-3");
ts3.setIndicator("Warenkorb");
Intent intent3 = new Intent(MainTabView.this,MainCart.class);
//ts3.setContent(intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
ts3.setContent(intent3);
tabHost.addTab(ts3);
//progressDialog = ProgressDialog.show(MainTabView.this, "",
// "Artikel werden geladen");
tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
Activity currentActivity = getCurrentActivity();
if (currentActivity instanceof MainActivity) {
((MainActivity) currentActivity).reload("22");
}
}
});
}
コード内のドイツ語のコメントで申し訳ありません。
私が本当に欲しいのは、MainCategoryTab から MainActivityTab (項目リスト) に切り替えることです。拡張可能なリストビューで OnClick イベントに反応したいと考えています。MainActivity に切り替えて、アイテム一覧をリロードしたい。