首页 > 解决方案 > 如何在没有 onCreate 方法的情况下使用 if 语句启动新 Activity?

问题描述

我基本上想在每个条件下启动新的活动,但问题是:我希望新的活动在“if 语句”为真时启动。因此,当用户到达计数器中的某个位置时,比如说 2,预期的活动应该开始。提前致谢!

这是一些代码:

public class Adapter extends PagerAdapter {

    private List<Model>models;
    private LayoutInflater layoutInflater;
    private Context context;

    public Adapter(List<Model> models, Context context) {
        this.models = models;
        this.context = context;
    }

    @Override
    public int getCount() {
        return models.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view.equals(object);
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, final int position) {
        layoutInflater=LayoutInflater.from(context);
        View view =layoutInflater.inflate(R.layout.item, container, false);

        ImageView imageView;
        TextView title, desc;

        imageView=view.findViewById(R.id.image);
        title=view.findViewById(R.id.title);
        desc=view.findViewById(R.id.desc);

        imageView.setImageResource(models.get(position).getImage());
        title.setText(models.get(position).getTitle());
        desc.setText(models.get(position).getDesc());


        view.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
//HERE IS MY PROBLEM
                if(position == 0){
                    //start activity1
                } else if(position == 1){
                    //start activity2
                }else if(position == 2){
                    //start activity3
                }else if(position == 3){
                    //start activity4
                }else {
                    Toast.makeText(context, "Click the exit button", Toast.LENGTH_SHORT).show();
                }
            }
        });
        container.addView(view,0);
        return view;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View)object);
    }
}

标签: javaandroidandroid-intentonclick

解决方案


这段代码运行良好:

view.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if(position == 0){
                Intent i = new Intent(view.getContext(),Levels.class);
                view.getContext().startActivity(i);
        }

推荐阅读