Android 进入第三个列表视图后访问第一个列表视图
我有一个关于列表视图的问题,完全把我弄糊涂了 我将为我最喜欢的歌手设计一个播放歌曲的应用程序,下面是我的工具: AlbumActivity----->ItemActivity(包含歌曲)--->PlayerActivity 这是我的相册活动代码:Android 进入第三个列表视图后访问第一个列表视图,android,Android,我有一个关于列表视图的问题,完全把我弄糊涂了 我将为我最喜欢的歌手设计一个播放歌曲的应用程序,下面是我的工具: AlbumActivity----->ItemActivity(包含歌曲)--->PlayerActivity 这是我的相册活动代码: public class AlbumActivity extends Activity implements Variable { @Override protected void onCreate(Bundle savedInstanceState
public class AlbumActivity extends Activity implements Variable {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.album_list);
populatecantactlist();//fill listview with my item
registerClickCallback();//What to do when click on item
}
private void populatecantactlist() {
ListView listview=(ListView)findViewById(R.id.list);
ArrayAdapter<String> adapter=new mylistAdapter();
listview.setAdapter(adapter);
}
public class mylistAdapter extends ArrayAdapter<String>{
private mylistAdapter(){
super(AlbumActivity.this,R.layout.album_list_item,albumnames);
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
View item_view=convertView;
if(item_view== null){ item_view=getLayoutInflater().inflate(R.layout.album_list_item,parent,false);
}
ImageView iv=(ImageView)item_view.findViewById(R.id.imageView1);
iv.setImageResource(icon_num[position]);
TextView tv1=(TextView)item_view.findViewById(R.id.txt_name);
tv1.setText(albumnames[position]);
return item_view;}
}
private void registerClickCallback() {
ListView list=(ListView)findViewById(R.id.list);
list.setOnItemClickListener(new OnItemClickListener() {
//I want to after on each item select go to new activity which populate
//information about new album
@Override
public void onItemClick(AdapterView<?> parent, View viewclicked,
int position, long id) {
Intent i2=new Intent("com.example.ItemActivity");
Bundle extras=new Bundle();
extras.putInt("PositionItemClicked", position);
i2.putExtras(extras);
startActivity(i2);
}});
但我不知道在itemactivity中选择的项目属于什么相册(意味着相册活动)?一天后我不知道该做什么?
你认为这是一种复杂的方式吗?你能给我一种更好的方式吗
谢谢。只需将项目活动更改为:
String [] names;
int icon_num;
Bundle bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.album_list);
bundle=getIntent().getExtras();
int i=bundle.getInt("PositionItemClicked");
switch (i){
case 0:
names=name1;
icon_num=R.drawable.name1;
break;
case 1:
names=name2;
icon_num=R.drawable.name2;
break;
case 2:
names=name3;
icon_num=R.drawable.name3;
break;
case 3:
names=name4;
icon_num=R.drawable.name4;
break;
case 4:
names=name5;
icon_num=R.drawable.name5;
break;
case 5:
names=name6;
icon_num=R.drawable.name6;
break;
case 6:
names=name7;
icon_num=R.drawable.name7;
break;
case 7:
names=name8;
icon_num=R.drawable.name8;
break;
case 8:
names=name9;
icon_num=R.drawable.name9;
break;
case 9:
names=name10;
icon_num=R.drawable.name10;
break;
case 10:
names=name11;
icon_num=R.drawable.name11;
break;
case 11:
names=name12;
icon_num=R.drawable.name12;
break;
}
populatecantactlist();//fill listview with my item
registerClickCallback();//What to do when click on item
}
public void populatecantactlist() {
ListView listview=(ListView)findViewById(R.id.list);
ArrayAdapter<String> adapter=new mylistAdapter();
listview.setAdapter(adapter);
}
public class mylistAdapter extends ArrayAdapter<String>{
private mylistAdapter(){
super(ItemActivity.this,R.layout.album_list_item,names);
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
View item_view=convertView;
if(item_view== null){
item_view=getLayoutInflater().inflate(R.layout.album_list_item,parent,false);
}
ImageView iv=(ImageView)item_view.findViewById(R.id.imageView1);
iv.setImageResource(icon_num);
TextView tv1=(TextView)item_view.findViewById(R.id.txt_name);
tv1.setText(names[position]);
return item_view;
}
}
private void registerClickCallback() {
final ListView list=(ListView)findViewById(R.id.list);
list.setOnItemClickListener(new OnItemClickListener() {
//I want to after on each item select go to new activity which populate with
//information about new album
@Override
public void onItemClick(AdapterView<?> parent, View viewclicked,
int position, long id) {
Intent i3=new Intent("com.example.PlayerActivity");
Bundle extras=new Bundle();
extras.putInt("i",bundle.getInt("PositionItemClicked");
i3.putExtras(extras);
startActivity(i3);
}});
String[]名称;
int-icon_-num;
束;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.album_列表);
bundle=getIntent().getExtras();
int i=bundle.getInt(“PositionItemClicked”);
开关(一){
案例0:
名称=名称1;
icon_num=R.drawable.name1;
打破
案例1:
名称=名称2;
icon_num=R.drawable.name2;
打破
案例2:
名称=名称3;
icon_num=R.drawable.name3;
打破
案例3:
名称=名称4;
icon_num=R.drawable.name4;
打破
案例4:
名称=名称5;
icon_num=R.drawable.name5;
打破
案例5:
名称=名称6;
icon_num=R.drawable.name6;
打破
案例6:
名称=名称7;
icon_num=R.drawable.name7;
打破
案例7:
名称=名称8;
icon_num=R.drawable.name8;
打破
案例8:
名称=名称9;
icon_num=R.drawable.name9;
打破
案例9:
名称=名称10;
icon_num=R.drawable.name10;
打破
案例10:
名称=名称11;
icon_num=R.drawable.name11;
打破
案例11:
名称=名称12;
icon_num=R.drawable.name12;
打破
}
PopulateCanActList();//用我的项目填充listview
registerClickCallback();//单击项时要做什么
}
public void populatecantactlist(){
ListView ListView=(ListView)findViewById(R.id.list);
ArrayAdapter=新的mylistAdapter();
setAdapter(适配器);
}
公共类mylistAdapter扩展了ArrayAdapter{
私有mylistAdapter(){
super(ItemActivity.this,R.layout.album\u list\u item,name);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图项_View=convertView;
如果(项目视图==null){
item_view=GetLayoutFlater().充气(R.layout.album_list_item,父项,false);
}
ImageView iv=(ImageView)项_view.findViewById(R.id.imageView1);
iv.setImageResource(图标数量);
TextView tv1=(TextView)item_view.findViewById(R.id.txt_name);
tv1.setText(名称[位置]);
返回项目视图;
}
}
私有无效注册表ClickCallback(){
最终ListView列表=(ListView)findViewById(R.id.list);
list.setOnItemClickListener(新的OnItemClickListener(){
//我想在每个项目上选择“转到新活动”,该活动以
//关于新专辑的信息
@凌驾
公共视图单击(AdapterView父级,视图单击,
内部位置,长id){
意图i3=新意图(“com.example.PlayerActivity”);
Bundle extras=新Bundle();
额外putInt(“i”,bundle.getInt(“PositionItemClicked”);
i3.临时演员(临时演员);
星触觉(i3);
}});
在您的AlbumActivity中,您如何准确地确定要显示哪些歌曲,您必须传递某种参数,以便它知道哪些歌曲应该显示在lsit中,对吗?我不知道您的想法。我使用intent将有关所选项目的数据传递到下一个活动(意味着ItemActivity)…!您得到了答案!!!!下面是答案。。。
public class PlayerActivity extends Activity implements Variable {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.player_layout);
Bundle bundle=getIntent().getExtras();
int i=bundle.getInt("i");
Toast.makeText(PlayerActivity.this,"hello"+i,Toast.LENGTH_LONG).show();
}}
String [] names;
int icon_num;
Bundle bundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.album_list);
bundle=getIntent().getExtras();
int i=bundle.getInt("PositionItemClicked");
switch (i){
case 0:
names=name1;
icon_num=R.drawable.name1;
break;
case 1:
names=name2;
icon_num=R.drawable.name2;
break;
case 2:
names=name3;
icon_num=R.drawable.name3;
break;
case 3:
names=name4;
icon_num=R.drawable.name4;
break;
case 4:
names=name5;
icon_num=R.drawable.name5;
break;
case 5:
names=name6;
icon_num=R.drawable.name6;
break;
case 6:
names=name7;
icon_num=R.drawable.name7;
break;
case 7:
names=name8;
icon_num=R.drawable.name8;
break;
case 8:
names=name9;
icon_num=R.drawable.name9;
break;
case 9:
names=name10;
icon_num=R.drawable.name10;
break;
case 10:
names=name11;
icon_num=R.drawable.name11;
break;
case 11:
names=name12;
icon_num=R.drawable.name12;
break;
}
populatecantactlist();//fill listview with my item
registerClickCallback();//What to do when click on item
}
public void populatecantactlist() {
ListView listview=(ListView)findViewById(R.id.list);
ArrayAdapter<String> adapter=new mylistAdapter();
listview.setAdapter(adapter);
}
public class mylistAdapter extends ArrayAdapter<String>{
private mylistAdapter(){
super(ItemActivity.this,R.layout.album_list_item,names);
}
@Override
public View getView(int position,View convertView,ViewGroup parent){
View item_view=convertView;
if(item_view== null){
item_view=getLayoutInflater().inflate(R.layout.album_list_item,parent,false);
}
ImageView iv=(ImageView)item_view.findViewById(R.id.imageView1);
iv.setImageResource(icon_num);
TextView tv1=(TextView)item_view.findViewById(R.id.txt_name);
tv1.setText(names[position]);
return item_view;
}
}
private void registerClickCallback() {
final ListView list=(ListView)findViewById(R.id.list);
list.setOnItemClickListener(new OnItemClickListener() {
//I want to after on each item select go to new activity which populate with
//information about new album
@Override
public void onItemClick(AdapterView<?> parent, View viewclicked,
int position, long id) {
Intent i3=new Intent("com.example.PlayerActivity");
Bundle extras=new Bundle();
extras.putInt("i",bundle.getInt("PositionItemClicked");
i3.putExtras(extras);
startActivity(i3);
}});