Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android ListView-打开每个项目的新活动_Java_Android_Listview_Android Activity - Fatal编程技术网

Java Android ListView-打开每个项目的新活动

Java Android ListView-打开每个项目的新活动,java,android,listview,android-activity,Java,Android,Listview,Android Activity,嗨,我正在尝试让我的listview打开每个部分的不同活动。到目前为止,我可以打开一个活动,但是它们都打开相同的活动。我需要知道如何改变这一点,例如: item1将打开activity1 item2将打开activity2等等 任何帮助都将不胜感激,以下是我的代码(一些评论来自我遵循的教程,非常抱歉我缺乏经验): ListView-ListView; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceS

嗨,我正在尝试让我的listview打开每个部分的不同活动。到目前为止,我可以打开一个活动,但是它们都打开相同的活动。我需要知道如何改变这一点,例如:

item1将打开activity1 item2将打开activity2等等

任何帮助都将不胜感激,以下是我的代码(一些评论来自我遵循的教程,非常抱歉我缺乏经验):

ListView-ListView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
//从xml获取listview
listView=(listView)findViewById(R.id.listView);
//要在listview中显示的已定义数组
字符串[]值=新字符串[]{“关于应用”,
“如何使用”,
“生成日志”,
};
//定义新的上下文
//第一个参数-上下文
//第二个参数-行的布局
//第三个参数-写入数据的TextView的ID
//第四,数据数组
ArrayAdapteradapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,android.R.id.text1,值);
//将适配器分配给listview
setAdapter(适配器);
//ListView项目单击侦听器
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
/*//listview单击的项目索引
int itemPosition=位置;
//Listview单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
//显示警惕
Toast.makeText(getApplicationContext(),
位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH_LONG).show()*/
Intent appInfo=新Intent(About.this,About_app.class);
星触觉(appInfo);
}
});
}

对于这一点,您必须提到:

if (position == 1) {
Intent appInfo = new Intent(About.this, about_app.class);
startActivity(appInfo);
}
else if (position == 2) {
Intent appInfo1 = new Intent(About.this, Test.class);
startActivity(appInfo1);
}
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
/*//listview单击的项目索引
int itemPosition=位置;
//Listview单击的项目值
String itemValue=(String)listView.getItemAtPosition(position);
//显示警惕
Toast.makeText(getApplicationContext(),
位置:“+itemPosition+”列表项:“+itemValue,Toast.LENGTH_LONG).show()*/
开关(位置)
案例0:Intent appInfo=新Intent(About.this,About_app.class);
星触觉(appInfo);
打破
案例1:Intent appInfo=新Intent(About.this,Activity1.class);
星触觉(appInfo);
打破
案例2:Intent appInfo=新Intent(About.this,Activity2.class);
星触觉(appInfo);
打破
}
});
检查此项

public interface IAction {
    public abstract void doAction();
    public abstract String getCaption();
}

ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_about);

    //get listview from xml
    listView = (ListView)findViewById(R.id.listView);

    //defined array to show in listview
    final ArrayList<String> values = new ArrayList<String>();
    //define a new context
    //First parameter - Context
    // Second parameter - Layout for the row
    // Third parameter - ID of the TextView to which the data is written
    // Forth - the Array of data

    final ArrayList<IAction> actions = new ArrayList<IAction>();
    prepareActions(actions);
    for (int i = 0; i < actions.size(); i++)
        values.add(actions.get(i).getCaption());
    ArrayAdapter<String>adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);

    //Assign adapter to listview
    listView.setAdapter(adapter);

    // ListView Item Click Listener
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        /*//listview clicked item index
        int itemPosition = position;

        //Listview clicked item value
        String itemValue = (String)listView.getItemAtPosition(position);

        //show alert
        Toast.makeText(getApplicationContext(),
                "Position:"+itemPosition+" ListItem:" + itemValue, Toast.LENGTH_LONG).show();*/

            actions.get(position).doAction();

        }
    });
}
    private void prepareActions(final ArrayList<IAction> actions) {


        actions.add(new IAction() {
            @Override
            public void doAction() {
                startActivity(new Intent(About.this, about_app.class));
            }

            @Override
            public String getCaption() {
                return "About the App";
            }
        });

        actions.add(new IAction() {
            @Override
            public void doAction() {
                startActivity(new Intent(About.this, HowtoUse.class));
            }

            @Override
            public String getCaption() {
                return "How to Use";
            }
        });

        actions.add(new IAction() {
            @Override
            public void doAction() {
                if (NeedToBuildLog)
                    startActivity(new Intent(About.this, Buildlog.class));
                /*else
                    Toast.makeText(getApplicationContext(),
                            "Position:"+itemPosition+" ListItem:" + itemValue, Toast.LENGTH_LONG).show();*/
            }

            @Override
            public String getCaption() {
                return "Build log";
            }
        });
    }
公共接口接口接口{
公共抽象无效行为();
公共抽象字符串getCaption();
}
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
//从xml获取listview
listView=(listView)findViewById(R.id.listView);
//要在listview中显示的已定义数组
最终ArrayList值=新ArrayList();
//定义新的上下文
//第一个参数-上下文
//第二个参数-行的布局
//第三个参数-写入数据的TextView的ID
//第四,数据数组
最终ArrayList操作=新建ArrayList();
准备(行动);
对于(int i=0;ilistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            /*//listview clicked item index
            int itemPosition = position;

            //Listview clicked item value
            String itemValue = (String)listView.getItemAtPosition(position);

            //show alert
            Toast.makeText(getApplicationContext(),
                    "Position:"+itemPosition+" ListItem:" + itemValue, Toast.LENGTH_LONG).show();*/
            switch(itemPosition)    

            case 0 :Intent appInfo = new Intent(About.this, about_app.class);
                startActivity(appInfo);
             break;
            case 1 :Intent appInfo = new Intent(About.this, Activity1.class);
                startActivity(appInfo);
             break;
             case 2 :Intent appInfo = new Intent(About.this, Activity2.class);
                startActivity(appInfo);
             break;
        }
    });
public interface IAction {
    public abstract void doAction();
    public abstract String getCaption();
}

ListView listView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_about);

    //get listview from xml
    listView = (ListView)findViewById(R.id.listView);

    //defined array to show in listview
    final ArrayList<String> values = new ArrayList<String>();
    //define a new context
    //First parameter - Context
    // Second parameter - Layout for the row
    // Third parameter - ID of the TextView to which the data is written
    // Forth - the Array of data

    final ArrayList<IAction> actions = new ArrayList<IAction>();
    prepareActions(actions);
    for (int i = 0; i < actions.size(); i++)
        values.add(actions.get(i).getCaption());
    ArrayAdapter<String>adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, values);

    //Assign adapter to listview
    listView.setAdapter(adapter);

    // ListView Item Click Listener
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        /*//listview clicked item index
        int itemPosition = position;

        //Listview clicked item value
        String itemValue = (String)listView.getItemAtPosition(position);

        //show alert
        Toast.makeText(getApplicationContext(),
                "Position:"+itemPosition+" ListItem:" + itemValue, Toast.LENGTH_LONG).show();*/

            actions.get(position).doAction();

        }
    });
}
    private void prepareActions(final ArrayList<IAction> actions) {


        actions.add(new IAction() {
            @Override
            public void doAction() {
                startActivity(new Intent(About.this, about_app.class));
            }

            @Override
            public String getCaption() {
                return "About the App";
            }
        });

        actions.add(new IAction() {
            @Override
            public void doAction() {
                startActivity(new Intent(About.this, HowtoUse.class));
            }

            @Override
            public String getCaption() {
                return "How to Use";
            }
        });

        actions.add(new IAction() {
            @Override
            public void doAction() {
                if (NeedToBuildLog)
                    startActivity(new Intent(About.this, Buildlog.class));
                /*else
                    Toast.makeText(getApplicationContext(),
                            "Position:"+itemPosition+" ListItem:" + itemValue, Toast.LENGTH_LONG).show();*/
            }

            @Override
            public String getCaption() {
                return "Build log";
            }
        });
    }