为了账号安全,请及时绑定邮箱和手机立即绑定

如何从重新搜索视图上打开新意向

如何从重新搜索视图上打开新意向

ITMISS 2022-09-14 17:15:47
我仍然是Android开发的初学者,在我的rekylerview项目点击后,我正在设置一些新视图,但我的应用程序在kotlin和android之间混合,因为我从互联网上获得了一些源代码,但我的项目从一开始就是由kotlin编译的。// Set New View Adapter// Based on Javaholder.itemImageView.setOnClickListener(new CustomOnItemClickListener(position, new CustomOnItemClickListener.OnItemClickCallback() {                @Override                public void onItemClicked(View view, int position) {                    if(holder.itemNameTextView.getText().equals("Pemerintahan (OPD)")){                        //open new intent                    else if(holder.itemNameTextView.getText().equals("Pelayanan Publik")){                       //open new intent                    }我引用的示例代码被使用 kotlin 显示像这样开始的新活动// Referenced Code// Based on Kotlinclass MainActivity : AppCompatActivity() {    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)        creativeViewPagerView.setCreativeViewPagerAdapter(NatureCreativePagerAdapter(this))    }}注意 : 创建视图页面视图 = 是 xml 活动上的属性值 主要性质创意页面适配器 = 是我将使用的适配器set创意查看页面适配器 = 类中的一个函数,代码如下// setCreativeViewPagerAdapter\// Based on Kotlinfun setCreativeViewPagerAdapter(creativePagerAdapter: CreativePagerAdapter) {    post({      this.creativePagerAdapter = creativePagerAdapter      // Setup adapter for palette manager      paletteCacheManager.setCreativeViewAdapter(creativePagerAdapter)      paletteCacheManager.cachePalettesAroundPositionAsync(0, {        refreshBackgroundColor(0, 0f)      })    })  }我的问题是如何让引用的示例代码在我的//设置新视图适配器上工作 非常感谢。
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

要创建一个新的,你只需要一个实例。您可以从以下任何实例中获取它(您在方法内部有它):IntentContextViewonItemClicked


Context context = view.getContext();

现在要创建并开始,您可以编写如下代码:Intent


Intent intent = new Intent(context, ActivityYouNeedToStart.class);

context.startActivity(intent);

因此,最终代码是:


@Override

public void onItemClicked(View view, int position) {

    Context context = view.getContext();

    Intent intent = new Intent(context, ActivityYouNeedToStart.class);

    context.startActivity(intent);

}


查看完整回答
反对 回复 2022-09-14
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您应该将活动/片段提供给 的构造函数。然后你可以使用这个contextadapter

Intent intent = new Intent(context,NewActivity.class);
context.startActivity(intent);


查看完整回答
反对 回复 2022-09-14
?
慕容森

TA贡献1853条经验 获得超18个赞

以下是在回收视图中实现子项的单击侦听器的一种方法。


public class HotelAdapter extends RecyclerView.Adapter {

private List<Top10Hotel> hotels;

private Context context;


private SavedHotelViewModel viewModel;


public HotelAdapter(List<Top10Hotel> hotels, Context context, SavedHotelViewModel viewModel) {

    this.hotels = hotels;

    this.context = context;

    this.viewModel = viewModel;

}


@NonNull

@Override

public MyHotelViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recommended_hotel, viewGroup, false);

    return new MyHotelViewHolder(view);

}


@Override

public void onBindViewHolder(@NonNull MyHotelViewHolder holder, int position) {


    Top10Hotel hotel = hotels.get(position);

    holder.hotelsTextView.setText(hotel.getHotel_name());


    Glide.with(context)

            .load(hotel.getHotel_image_url())

            .error(R.drawable.ic_location_city)

            // read original from cache (if present) otherwise download it and decode it

            .diskCacheStrategy(DiskCacheStrategy.SOURCE)

            .into(holder.hotelsImageView);

    long rating = 0;


    if(hotel.getHotel_rating() != null && hotel.getHotel_rating().length()>0){

        try {

            rating = Long.parseLong(hotel.getHotel_rating());

        }catch (NumberFormatException e){

            rating =1;

        }


    }


    String rate= null;

    if(rating>=4.5){

        rate = String.valueOf(rating)+" Excellent";

    }else if(rating>=4 && (rating < 4.5)){

        rate = String.valueOf(rating)+" Very Good";

    }else {

        rate = String.valueOf(rating)+" Good";

    }

    holder.rating.setText(rate);

    String range = "₹"+hotel.getHotel_low_range()+" - "+"₹"+hotel.getHotel_high_range();

    holder.priceRange.setText(range);


    holder.area.setText(hotel.getHotel_area());



    holder.saveImage.setOnClickListener(view -> {


        RoomBooking hotelSaved = new RoomBooking(hotel.getHotel_id(),

                hotel.getHotel_name(),

                hotel.getHotel_area(),

                hotel.getHotel_low_range(),

                hotel.getHotel_high_range(),

                hotel.getHotel_rating(),

                hotel.getHotel_image_url());


        if(hotel.isSaved()){

            holder.saveImage.setImageResource(R.drawable.ic_favorite_black);

            hotel.setSaved(false);

            viewModel.delete(hotelSaved);

            Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();

        }else {

            holder.saveImage.setImageResource(R.drawable.ic_saved_love);

            hotel.setSaved(true);


            viewModel.insert(hotelSaved);

            Toast.makeText(context, "saved", Toast.LENGTH_SHORT).show();

        }


        notifyDataSetChanged();

    });


    holder.linearLayout.setOnClickListener(view -> navigateToHotelActivity(hotel.getHotel_id(),hotel.getHotel_name()));

    holder.hotelsImageView.setOnClickListener(view -> navigateToHotelActivity(hotel.getHotel_id(),hotel.getHotel_name()));



}


private void navigateToHotelActivity(String hotelId, String hotelName) {


            Intent intent = new Intent(context, HotelActivity.class);

            intent.putExtra("hotelId",hotelId);

            intent.putExtra("hotelName",hotelName);

            context.startActivity(intent);

}


@Override

public int getItemCount() {

    return hotels.size();

}


public class MyHotelViewHolder extends RecyclerView.ViewHolder {


    TextView hotelsTextView,rating,priceRange,area;

    ImageView hotelsImageView;

    ImageView saveImage;

    LinearLayout linearLayout;


    public MyHotelViewHolder(@NonNull View itemView) {

        super(itemView);


        linearLayout = itemView.findViewById(R.id.linearLayoutH);


        hotelsTextView = itemView.findViewById(R.id.hotels_name);

        hotelsImageView = itemView.findViewById(R.id.hotels_image);

        rating = itemView.findViewById(R.id.hotel_rating);

        priceRange = itemView.findViewById(R.id.price_range);

        area = itemView.findViewById(R.id.area_name);


        saveImage = itemView.findViewById(R.id.save_icon);

    }

}



}


查看完整回答
反对 回复 2022-09-14
  • 3 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号