0
    MY MainActivity


    public class MainActivity extends AppCompatActivity implements UsersAdapter.SelectedUser{
    
    
    
        Toolbar toolbar;
        RecyclerView recyclerview;
    
        List<UserModel> userModelList = new ArrayList<>();
        String[] names = {"Bensen Idahosa", "Kenneth E.Hagin", "Billy Graham", "Kathryn Kulman",
                          "David Oyedepo", "T.B Joshua", "Dr. D. K. Olukoya", "Jonas Clark", "James W.Goll",
                          "Les D. Crausade", "John Hamel", "Steves Brooks", "Jonathan Welton",
                          "John Bevere", "Doug Addison", "Kim Clement", "Kevin Basconi", "Lynn Walker",
                          "Rick Joyner", "Glenna Miller", "Ana Werner", "James Galloway", "Dr. Stephen R.Crosby",
                          "Jennifer Leclaire", "Ernest B.Gentile", "Kris Valloton", "T.Austin Spairs", "Dwann H.Rollinson",
                          "Ed Dufresne", "Dr. Christ Harfouche"};
    
    
    
        String[] desc = new String[] { "Benson Andrew Idahosa (11 September 1938 – 12 March 1998), was a Charismatic Pentecostal preacher. He is the founder of Church of God Mission International, Archbishop Benson Idahosa was popularly referred to as the father of Pentecostalism in Nigeria.[1] Idahosa was the founder of Benson Idahosa University (BIU) in Benin City, Edo State, Nigeria.[2] His only son, Bishop F.E.B. Idahosa, is now the president of BIU, founder and president of Big Ben's Children Hospital, vice-president of All Nations for Christ Bible Institute International, among other positions.", "India", "United States","Indonesia", "Brazil", "Pakistan", "Nigeria", "Bangladesh", "Russia", "Japan",
                "China", "India", "United States","Indonesia", "Brazil", "Pakistan", "Nigeria", "Bangladesh", "Russia", "Japan",
                "Japan", "Japan", "Japan", "Japan", "Japan", "Japan", "Japan", "Japan", "Japan", "Japan" };
    
    
        int[] image = new int[] { R.drawable.ben, R.drawable.india, R.drawable.unitedstates, R.drawable.indonesia, R.drawable.brazil,
                                  R.drawable.pakistan, R.drawable.nigeria, R.drawable.bangladesh, R.drawable.russia, R.drawable.japan,
                                  R.drawable.algorithm, R.drawable.browser, R.drawable.unitedstates, R.drawable.indonesia, R.drawable.unitedstates,
                                  R.drawable.indonesia, R.drawable.unitedstates, R.drawable.indonesia, R.drawable.brazil, R.drawable.pakistan,
                                  R.drawable.nigeria, R.drawable.unitedstates, R.drawable.indonesia, R.drawable.bangladesh, R.drawable.russia,
                                  R.drawable.japan, R.drawable.unitedstates, R.drawable.indonesia, R.drawable.japan, R.drawable.japan };
    UsersAdapter usersAdapter;


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

    recyclerview = findViewById(R.id.recyclerview);
    toolbar = findViewById(R.id.toolbar);


    for (int i = 0; i < names.length; i++)
    {
        UserModel userModel = new UserModel(names[i], desc[i],
                 image[i]);
        // Binds all strings into an array
        userModelList.add(userModel);
    }

    this.setSupportActionBar(toolbar);
    this.getSupportActionBar().setTitle("");

    recyclerview.setLayoutManager(new LinearLayoutManager(this));
    recyclerview.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));

    usersAdapter = new UsersAdapter(userModelList, this);
    recyclerview.setAdapter(usersAdapter);
}

@Override
public void selectedUser(UserModel userModel) {
    startActivity(new Intent(MainActivity.this, SelectedUserActivity.class).putExtra("data", userModel));
}

MY SelectedUserActivity

    package com.newcreation.recyclerview;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Context;
    import android.content.Intent;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.os.Bundle;
    import android.util.Base64;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.google.android.material.snackbar.BaseTransientBottomBar;
    import com.google.android.material.snackbar.Snackbar;
    
    import java.io.ByteArrayOutputStream;
    
    public class SelectedUserActivity extends AppCompatActivity {
    
        TextView tvUser,tvt2,tvt3,btn;
        ImageView ivautor;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_selected_user);
    
            tvUser = findViewById(R.id.selectedUser);
            tvt2=findViewById(R.id.t2);
            tvt3=findViewById(R.id.t3);
            ivautor=findViewById(R.id.imageViewAutors);
            btn=findViewById(R.id.next);
    
            Intent intent = getIntent();
    
    
            if(intent.getExtras() != null){
                UserModel userModel = (UserModel) intent.getSerializableExtra("data");
    
                tvUser.setText(userModel.getUserName());
                tvt2.setText(userModel.getUserName());
                tvt3.setText(userModel.getDesc());
    
                ivautor.setImageResource(userModel.getImage());
    
                } else {
                    Toast.makeText(this,"DATA NOT AVAILABLE", Toast.LENGTH_LONG).show();
                }
    
    
            }
    
        }

MY UserAdapter

    package com.newcreation.recyclerview;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Filter;
    import android.widget.Filterable;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import androidx.annotation.NonNull;
    import androidx.recyclerview.widget.RecyclerView;
    
    public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.UsersAdapterVh> implements Filterable {
    
        private List<UserModel> userModelList;
        private List<UserModel> getuserModelListFiltered;
        private Context context;
        private SelectedUser selectedUser;
    
        public UsersAdapter(List<UserModel> userModelList,SelectedUser selectedUser){
            this.userModelList = userModelList;
            this.getuserModelListFiltered = userModelList;
            this.selectedUser = selectedUser;
        }
    
        @NonNull
        @Override
        public UsersAdapter.UsersAdapterVh onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            context = parent.getContext();
            return new UsersAdapterVh(LayoutInflater.from(context).inflate(R.layout.row_users, null));
        }
    
        @Override
        public void onBindViewHolder(@NonNull UsersAdapter.UsersAdapterVh holder, int position) {
    
            UserModel userModel = userModelList.get(position);
    
            String username = userModel.getUserName();
            String prefix = userModel.getUserName().substring(0,1);
    
            holder.tvUsername.setText(username);
            holder.tvPrefix.setText(prefix);
        }
    
        @Override
        public int getItemCount() {
            return userModelList.size();
        }
    
        @Override
        public Filter getFilter() {
    
            Filter filter = new Filter() {
                @Override
                protected FilterResults performFiltering(CharSequence charSequence) {
                    FilterResults filterResults = new FilterResults();
    
                    if(charSequence == null | charSequence.length() ==0){
                        filterResults.count = getuserModelListFiltered.size();
                        filterResults.values = getuserModelListFiltered;
                    }else{
                        String searcherChr = charSequence.toString().toLowerCase();
    
                        List<UserModel> resultData = new ArrayList<>();
    
                        for(UserModel userModel: getuserModelListFiltered){
                            if (userModel.getUserName().toLowerCase().contains(searcherChr)){
                                resultData.add(userModel);
                            }
                        }
                        filterResults.count = resultData.size();
                        filterResults.values = resultData;
                    }
    
                    return filterResults;
                }
    
                @Override
                protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
    
                    userModelList = (List<UserModel>) filterResults.values;
                    notifyDataSetChanged();
                }
            };
            return filter;
        }
    
        public interface SelectedUser{
            void selectedUser (UserModel userModel);
        }
    
        public class UsersAdapterVh extends RecyclerView.ViewHolder {
    
            TextView tvPrefix;
            TextView tvUsername;
            ImageView imIcon;
    
            public UsersAdapterVh(@NonNull View itemView) {
                super(itemView);
                tvPrefix = itemView.findViewById(R.id.prefix);
                tvUsername = itemView.findViewById(R.id.username);
                imIcon = itemView.findViewById(R.id.imageView);
    
                itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        selectedUser.selectedUser(userModelList.get(getAdapterPosition()));
                    }
                });
            }
        }
    
    }

我有一个名称数组,可以通过单击它来查看特定名称信息,但是我想打开与我通过在该选定名称 XML 中找到的按钮单击的特定名称相对应的不同活动。我有一个名称数组,可以通过单击它来查看特定名称信息,但是我想打开与我通过在该选定名称 XML 中找到的按钮单击的特定名称相对应的不同活动。

4

0 回答 0