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

我仍然是Android开发的初学者,在我的rekylerview项目点击后,我正在设置一些新视图,但我的应用程序在kotlin和android之间混合,因为我从互联网上获得了一些源代码,但我的项目从一开始就是由kotlin编译的。


// Set New View Adapter

// Based on Java


holder.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 Kotlin


class MainActivity : AppCompatActivity() {


    override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_main)

        creativeViewPagerView.setCreativeViewPagerAdapter(NatureCreativePagerAdapter(this))

    }

}

注意 : 创建视图页面视图 = 是 xml 活动上的属性值 主要性质创意页面适配器 = 是我将使用的适配器


set创意查看页面适配器 = 类中的一个函数,代码如下


// setCreativeViewPagerAdapter\

// Based on Kotlin


fun setCreativeViewPagerAdapter(creativePagerAdapter: CreativePagerAdapter) {

    post({

      this.creativePagerAdapter = creativePagerAdapter

      // Setup adapter for palette manager

      paletteCacheManager.setCreativeViewAdapter(creativePagerAdapter)

      paletteCacheManager.cachePalettesAroundPositionAsync(0, {

        refreshBackgroundColor(0, 0f)

      })

    })

  }

我的问题是如何让引用的示例代码在我的//设置新视图适配器上工作 非常感谢。


ITMISS
浏览 98回答 3
3回答

哈士奇WWW

要创建一个新的,你只需要一个实例。您可以从以下任何实例中获取它(您在方法内部有它):IntentContextViewonItemClickedContext context = view.getContext();现在要创建并开始,您可以编写如下代码:IntentIntent intent = new Intent(context, ActivityYouNeedToStart.class);context.startActivity(intent);因此,最终代码是:@Overridepublic void onItemClicked(View view, int position) {    Context context = view.getContext();    Intent intent = new Intent(context, ActivityYouNeedToStart.class);    context.startActivity(intent);}

白衣非少年

您应该将活动/片段提供给 的构造函数。然后你可以使用这个contextadapterIntent intent = new Intent(context,NewActivity.class); context.startActivity(intent);

慕容森

以下是在回收视图中实现子项的单击侦听器的一种方法。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) {&nbsp; &nbsp; this.hotels = hotels;&nbsp; &nbsp; this.context = context;&nbsp; &nbsp; this.viewModel = viewModel;}@NonNull@Overridepublic MyHotelViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {&nbsp; &nbsp; View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recommended_hotel, viewGroup, false);&nbsp; &nbsp; return new MyHotelViewHolder(view);}@Overridepublic void onBindViewHolder(@NonNull MyHotelViewHolder holder, int position) {&nbsp; &nbsp; Top10Hotel hotel = hotels.get(position);&nbsp; &nbsp; holder.hotelsTextView.setText(hotel.getHotel_name());&nbsp; &nbsp; Glide.with(context)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .load(hotel.getHotel_image_url())&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .error(R.drawable.ic_location_city)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // read original from cache (if present) otherwise download it and decode it&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .diskCacheStrategy(DiskCacheStrategy.SOURCE)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .into(holder.hotelsImageView);&nbsp; &nbsp; long rating = 0;&nbsp; &nbsp; if(hotel.getHotel_rating() != null && hotel.getHotel_rating().length()>0){&nbsp; &nbsp; &nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rating = Long.parseLong(hotel.getHotel_rating());&nbsp; &nbsp; &nbsp; &nbsp; }catch (NumberFormatException e){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rating =1;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; String rate= null;&nbsp; &nbsp; if(rating>=4.5){&nbsp; &nbsp; &nbsp; &nbsp; rate = String.valueOf(rating)+" Excellent";&nbsp; &nbsp; }else if(rating>=4 && (rating < 4.5)){&nbsp; &nbsp; &nbsp; &nbsp; rate = String.valueOf(rating)+" Very Good";&nbsp; &nbsp; }else {&nbsp; &nbsp; &nbsp; &nbsp; rate = String.valueOf(rating)+" Good";&nbsp; &nbsp; }&nbsp; &nbsp; holder.rating.setText(rate);&nbsp; &nbsp; String range = "₹"+hotel.getHotel_low_range()+" - "+"₹"+hotel.getHotel_high_range();&nbsp; &nbsp; holder.priceRange.setText(range);&nbsp; &nbsp; holder.area.setText(hotel.getHotel_area());&nbsp; &nbsp; holder.saveImage.setOnClickListener(view -> {&nbsp; &nbsp; &nbsp; &nbsp; RoomBooking hotelSaved = new RoomBooking(hotel.getHotel_id(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_name(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_area(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_low_range(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_high_range(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_rating(),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.getHotel_image_url());&nbsp; &nbsp; &nbsp; &nbsp; if(hotel.isSaved()){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; holder.saveImage.setImageResource(R.drawable.ic_favorite_black);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.setSaved(false);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewModel.delete(hotelSaved);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Toast.makeText(context, "Removed", Toast.LENGTH_SHORT).show();&nbsp; &nbsp; &nbsp; &nbsp; }else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; holder.saveImage.setImageResource(R.drawable.ic_saved_love);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hotel.setSaved(true);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; viewModel.insert(hotelSaved);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Toast.makeText(context, "saved", Toast.LENGTH_SHORT).show();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; notifyDataSetChanged();&nbsp; &nbsp; });&nbsp; &nbsp; holder.linearLayout.setOnClickListener(view -> navigateToHotelActivity(hotel.getHotel_id(),hotel.getHotel_name()));&nbsp; &nbsp; holder.hotelsImageView.setOnClickListener(view -> navigateToHotelActivity(hotel.getHotel_id(),hotel.getHotel_name()));}private void navigateToHotelActivity(String hotelId, String hotelName) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Intent intent = new Intent(context, HotelActivity.class);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intent.putExtra("hotelId",hotelId);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; intent.putExtra("hotelName",hotelName);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; context.startActivity(intent);}@Overridepublic int getItemCount() {&nbsp; &nbsp; return hotels.size();}public class MyHotelViewHolder extends RecyclerView.ViewHolder {&nbsp; &nbsp; TextView hotelsTextView,rating,priceRange,area;&nbsp; &nbsp; ImageView hotelsImageView;&nbsp; &nbsp; ImageView saveImage;&nbsp; &nbsp; LinearLayout linearLayout;&nbsp; &nbsp; public MyHotelViewHolder(@NonNull View itemView) {&nbsp; &nbsp; &nbsp; &nbsp; super(itemView);&nbsp; &nbsp; &nbsp; &nbsp; linearLayout = itemView.findViewById(R.id.linearLayoutH);&nbsp; &nbsp; &nbsp; &nbsp; hotelsTextView = itemView.findViewById(R.id.hotels_name);&nbsp; &nbsp; &nbsp; &nbsp; hotelsImageView = itemView.findViewById(R.id.hotels_image);&nbsp; &nbsp; &nbsp; &nbsp; rating = itemView.findViewById(R.id.hotel_rating);&nbsp; &nbsp; &nbsp; &nbsp; priceRange = itemView.findViewById(R.id.price_range);&nbsp; &nbsp; &nbsp; &nbsp; area = itemView.findViewById(R.id.area_name);&nbsp; &nbsp; &nbsp; &nbsp; saveImage = itemView.findViewById(R.id.save_icon);&nbsp; &nbsp; }}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java