我知道ActivityGroup處於「過去」,但我想學習如何使用它。所以我編寫了一個簡單的TabHost,並想使用ActivityGroup顯示不同的活動。下面是代碼Android ActivityGroup
Player.java
package player.org;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TabHost;
import android.widget.TabWidget;
import android.widget.TextView;
public class Player extends TabActivity {
/** Called when the activity is first created. */
private MediaPlayer media=null;
private SeekBar progress;
private View play;
private Progress p;
TabHost tabhost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
Resources res=getResources();
//TabHost tabhost=(TabHost) findViewById(R.id.tabhost);
// tabhost.setup();
tabhost=getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent=new Intent(this,Progress.class);
spec=tabhost.newTabSpec("now playing").setIndicator("Now playing", res.getDrawable(R.drawable.icon))
.setContent(intent);
tabhost.addTab(spec);
intent=new Intent(this,Group.class);
spec=tabhost.newTabSpec("all_songs").setIndicator("All songs", res.getDrawable(R.drawable.songs))
.setContent(intent);
tabhost.addTab(spec);
//intent=new Intent(this,Progress.class);
spec=tabhost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.icon))
.setContent(intent);
tabhost.addTab(spec);
spec=tabhost.newTabSpec("alboom").setIndicator("Alboom", res.getDrawable(R.drawable.icon))
.setContent(intent);
tabhost.addTab(spec);
tabhost.setCurrentTab(0);
}
}
Group.java
import android.os.Bundle;
import android.view.View;
public class Group extends ActivityGroup
{
@Override
public void onCreate(Bundle savedInstanceStated)
{
super.onCreate(savedInstanceStated);
View view = getLocalActivityManager().startActivity("AllSongs",
new Intent(this, AllSongs.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(view);
}
AllSongs.java
package player.org;
import java.util.ArrayList;
import android.R.id;
import android.app.ActivityGroup;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
public class AllSongs extends ListActivity{
ArrayList<String> listItem=new ArrayList<String>();
ArrayAdapter<String> adapter;
ListView listView;
//Player p;
TabHost tab;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//p=new Player();
adapter=new ArrayAdapter<String>(this,R.layout.list_item,listItem);
setListAdapter(adapter);
listView=getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(listener);
addItem("vahag");
addItem("vahagvahag");
}
private OnItemClickListener listener=new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Intent intent = new Intent(AllSongs.this,Progress.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Group group= (Group) getParent();
View view=group.getLocalActivityManager().startActivity("Progress",intent).getDecorView();
setContentView(view);
}
};
public void addItem(String s)
{
listItem.add(s);
adapter.notifyDataSetChanged();
}
}
和Progress.java
package player.org;
import android.app.Activity;
import android.app.ActivityGroup;
import android.app.Dialog;
import android.app.TabActivity;
import android.content.Context;
public class Progress extends Activity {
// Called when the activity is first created.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
零件
所以,AllSongs.java
嘗試改變與進步活動當前活動,但是當我按下列表項中,PROGRAMM forsed關閉,logChat說
「十二月8日至17日:49:26.471:ERROR/AndroidRuntime (1500): 了java.lang.RuntimeException:你的內容必須有一個ListView的ID 屬性爲 'android.R.id.list'」
我想不出如何解決這個問題,CAN有人幫忙嗎?
的問題是,需要的setContentView與特定ID的ListView,但爲什麼,我不能uderstand ((( –