Java 如何使用我的listView项目打开不同的活动?
我有一个包含9个不同字符串的字符串数组,并用这些字符串创建了一个listView;现在我想在单击listView的每个元素时打开一个不同的活动。我已经试过了Java 如何使用我的listView项目打开不同的活动?,java,android,listview,Java,Android,Listview,我有一个包含9个不同字符串的字符串数组,并用这些字符串创建了一个listView;现在我想在单击listView的每个元素时打开一个不同的活动。我已经试过了 row.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent((Activity)context, Workouts.class));
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent((Activity)context, Workouts.class));
}
});
但它只为所有项目打开相同的活动。如果您能提供一个工作代码,那将是非常好的,因为我已经尝试过处理这个问题
主要活动:
public class MainActivity extends Activity implements OnItemClickListener {
private DrawerLayout drawerLayout;
private ListView listView;
private ActionBarDrawerToggle drawerListener;
private MyAdapter MyAdapter;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawerLayout=(DrawerLayout) findViewById(R.id.drawerLayout);
listView=(ListView)findViewById(R.id.drawerList);
MyAdapter=new MyAdapter(this);
listView.setAdapter(MyAdapter);
listView.setOnItemClickListener(this);
drawerListener= new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.listmenu,
R.string.drawer_open, R.string.drawer_close){
@Override
public void onDrawerClosed(View drawerView) {
// TODO Auto-generated method stub
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, " Drawer Opened ",
Toast.LENGTH_SHORT).show();
}
};
drawerLayout.setDrawerListener(drawerListener);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if (drawerListener.onOptionsItemSelected(item))
{
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
drawerListener.onConfigurationChanged(newConfig);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onPostCreate(savedInstanceState);
drawerListener.syncState();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
}
public void selectItem(int position) {
listView.setItemChecked(position, true);
}
public void setTitle(String title)
{
getActionBar().setTitle(title);
class MyAdapter extends BaseAdapter {
private Context context;
String[] planets;
int[] images = { R.drawable.home, R.drawable.workout, R.drawable.week,
R.drawable.gallery, R.drawable.statistics, R.drawable.settings};
public MyAdapter(Context context) {
this.context=context;
planets=context.getResources().getStringArray(R.array.planets);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return planets.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return planets[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row =null;
if (convertView==null)
{
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.custom_row, parent, false);
}
else
{
row = convertView
}
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent((Activity) context, Workouts.class));
}
});
TextView titleTextView = (TextView) row.findViewById(R.id.textView1);
ImageView titleImageView = (ImageView) row.findViewById(R.id.imageView1);
titleTextView.setText(planets[position]);
titleImageView.setImageResource(images[position]);
return row;
}
}
}
public类MainActivity扩展活动实现了mclickListener{
私人抽屉布局;
私有列表视图列表视图;
私人诉讼律师;
私有MyAdapter MyAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
抽屉布局=(抽屉布局)findViewById(R.id.抽屉布局);
listView=(listView)findViewById(R.id.DroperList);
MyAdapter=新的MyAdapter(此);
setAdapter(MyAdapter);
setOnItemClickListener(this);
DroperListener=new ActionBarDrawerToggle(这是DroperLayout,
R.drawable.listmenu,
R.string.drawer\u打开,R.string.drawer\u关闭){
@凌驾
图纸上的公共空白已关闭(视图抽屉视图){
//TODO自动生成的方法存根
super.onDrawerClosed(抽屉视图);
}
@凌驾
打开图纸上的公共空白(视图抽屉视图){
//TODO自动生成的方法存根
Toast.makeText(MainActivity.this,“抽屉已打开”,
吐司。长度(短)。show();
}
};
抽屉布局。设置抽屉布局器(抽屉布局器);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//TODO自动生成的方法存根
如果(抽屉链接器.onOptions项目已选定(项目))
{
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
公共无效OnConfiguration已更改(配置newConfig){
//TODO自动生成的方法存根
super.onConfigurationChanged(newConfig);
DroperListener.onConfiguration已更改(newConfig);
}
@凌驾
后期创建时受保护的空(捆绑包savedInstanceState){
//TODO自动生成的方法存根
super.onPostCreate(savedInstanceState);
drawerListener.syncState();
}
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
}
public void selectItem(内部位置){
setItemChecked(位置,true);
}
公共无效集合标题(字符串标题)
{
getActionBar().setTitle(标题);
类MyAdapter扩展了BaseAdapter{
私人语境;
弦[]行星;
int[]images={R.drawable.home,R.drawable.workout,R.drawable.week,
R.drawable.gallery,R.drawable.statistics,R.drawable.settings};
公共MyAdapter(上下文){
this.context=context;
planets=context.getResources().getStringArray(R.array.planets);
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回长度;
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回行星[位置];
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视图行=空;
if(convertView==null)
{
LayoutInflater充气机=(LayoutInflater)
getSystemService(context.LAYOUT\u充气机\u服务);
行=充气机。充气(R.layout.custom_行,父项,false);
}
其他的
{
行=转换视图
}
row.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startActivity(新意图((活动)背景,训练。课程));
}
});
TextView titleTextView=(TextView)row.findViewById(R.id.textView1);
ImageView标题ImageView=(ImageView)row.findViewById(R.id.imageView1);
titleTextView.setText(行星[位置]);
titleImageView.setImageResource(图像[位置]);
返回行;
}
}
}
您可以根据职位转到不同的活动
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Switch(position){
case 0:
//startActivity 1
break;
case 1:
//startActivity 2
break;
/**** continue **********/
}
}
});
==>在您的主要活动中替换以下代码
public class MainActivity extends Activity implements OnItemClickListener {
private DrawerLayout drawerLayout;
private ListView listView;
private ActionBarDrawerToggle drawerListener;
private MyAdapter MyAdapter;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
drawerLayout=(DrawerLayout) findViewById(R.id.drawerLayout);
listView=(ListView)findViewById(R.id.drawerList);
MyAdapter=new MyAdapter(this);
listView.setAdapter(MyAdapter);
listView.setOnItemClickListener(this);
drawerListener= new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.listmenu,
R.string.drawer_open, R.string.drawer_close){
@Override
public void onDrawerClosed(View drawerView) {
// TODO Auto-generated method stub
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, " Drawer Opened ",
Toast.LENGTH_SHORT).show();
}
};
drawerLayout.setDrawerListener(drawerListener);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if(drawerListener.onOptionsItemSelected(item))
{
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
drawerListener.onConfigurationChanged(newConfig);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onPostCreate(savedInstanceState);
drawerListener.syncState();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (position == 0) {
startActivity(new Intent((Activity) context, A.class));
}
if (position == 1) {
startActivity(new Intent((Activity) context, B.class));
}
if (position == 2) {
startActivity(new Intent((Activity) context, C.class));
}
if (position == 3) {
startActivity(new Intent((Activity) context, D.class));
}
if (position == 4) {
startActivity(new Intent((Activity) context, E.class));
}
if (position == 5) {
startActivity(new Intent((Activity) context, F.class));
}
if (position == 6) {
startActivity(new Intent((Activity) context, G.class));
}
if (position == 7) {
startActivity(new Intent((Activity) context, H.class));
}
if (position == 8) {
startActivity(new Intent((Activity) context, I.class));
}
}
public void selectItem(int position) {
listView.setItemChecked(position, true);
}
public void setTitle(String title)
{
getActionBar().setTitle(title);
}
class MyAdapter extends BaseAdapter {
private Context context;
String[] planets;
int[] images = { R.drawable.home, R.drawable.workout, R.drawable.week,
R.drawable.gallery, R.drawable.statistics, R.drawable.settings};
public MyAdapter(Context context) {
this.context=context;
planets=context.getResources().getStringArray(R.array.planets);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return planets.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return planets[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row =null;
if(convertView==null)
{
LayoutInflater inflater=(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.custom_row, parent, false);
}
else
{
row=convertView;
}
TextView titleTextView=(TextView) row.findViewById(R.id.textView1);
ImageView titleImageView= (ImageView) row.findViewById(R.id.imageView1);
titleTextView.setText(planets[position]);
titleImageView.setImageResource(images[position]);
return row;
}
}
}
public类MainActivity扩展活动实现了mclickListener{
私人抽屉布局;
私有列表视图列表视图;
私人诉讼律师;
私有MyAdapter MyAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
抽屉布局=(抽屉布局)findViewById(R.id.抽屉布局);
listView=(listView)findViewById(R.id.DroperList);
MyAdapter=新的MyAdapter(此);
setAdapter(MyAdapter);
setOnItemClickListener(this);
DroperListener=new ActionBarDrawerToggle(这是DroperLayout,
R.drawable.listmenu,
R.string.drawer\u打开,R.string.drawer\u关闭){
@凌驾
公众的
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
switch (position) {
case 0:
startActivity(new Intent((Activity) context, Activity0.class));
break;
case 1:
startActivity(new Intent((Activity) context, Activity1.class));
break;
case 2:
startActivity(new Intent((Activity) context, Activity2.class));
break;
// etc.
}
});
@Override
public void onItemClick(View view, int position) {
switch(position){
case 0:
startActivity(new Intent(MainActivity.this, A.class));
break;
case 1:
startActivity(new Intent(MainActivity.this, B.class));
break;
default:
break;
}
}