如何根据自定义列表视图中选择的项目将信息传递到下一个活动

时间:2017-05-16 14:55:34

标签: android listview start-activity

我正在尝试根据选择的列表视图项将信息传递给我的应用程序中的下一个活动。但是,单击自定义按钮(id:button_go)时会调用startActivity。

我认为根据选择的列表视图项传递信息的常用方法是通过以下代码:

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapter, View view, int position, long id){
            Intent intent = new Intent(getActivity(), Detail_Activity.class);

        }
    });

但是这在我的班级中不起作用,因为它连接到一个按钮。我的列表中的代码View片段如下。

class CustomAdapter extends BaseAdapter {

    @Override
    public int getCount() {
        return testArray.length;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = getActivity().getLayoutInflater().inflate(R.layout.customlayout,null);


        Button button_go = (Button)view.findViewById(R.id.button_go);


        button_go.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
            }
                // Perform action on click
                //startActivity(new Intent(getActivity(), Detail_Activity.class));
            }
        });


        return view;
    }
}

}

2 个答案:

答案 0 :(得分:1)

在您的按钮p <- ggplot(data=data_read) + stat_summary(colour="blue", fun.y=mean, geom="line", size=1.0, aes(x=factor(x), y=A, group=1), show.legend=T) + stat_summary(fun.y=mean, geom="point", aes(x=factor(x), y=A, shape="A"), size=5,col="black") + stat_summary(colour="green", fun.y=mean, geom="line", size=1.0, aes(x=factor(x), y=B, group=1), show.legend=T) + stat_summary(fun.y=mean, geom="point", aes(x=factor(x), y=B, shape="B"), size=3, col="black") + scale_shape_manual("title", values=c("A"="\U0394", "B"="*")) p + theme(legend.position = c(0.5,0.5), legend.text = element_text(size = 15, colour = "black"), legend.title = element_text(size = 15, colour = "black")) + coord_cartesian(ylim = c(10,30), expand = FALSE) + expand_limits(x=0, y=10) 中创建Intent,并将onClickListener中点击的按钮的位置(或任何其他列表项特定信息)作为额外添加

Intent

然后点击新活动button_go.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(getActivity(), Detail_Activity.class)); intent.putExtra("position", i); startActivity(intent); } }); 中点击按钮的位置:

onCreate()

答案 1 :(得分:0)

我不确定你的问题是什么。 你能告诉我你点击按钮时发生了什么吗? 尝试添加日志以确保调用onClick。

您的问题是您不知道如何在新活动中传递信息或您的活动没有开始?

仅供参考,您可以通过调用getItem(position)来检索此位置的项目。