回收站视图不显示

时间:2020-12-19 20:56:42

标签: java android android-recyclerview

我的 recyclerview 有问题我在 android studio 中构建了一个应用程序,该应用程序假设使用 cardview 和 recyclerview 创建联系人并观看他们的卡片问题是没有显示联系人列表,而是我看到了一个白屏 所以这是我的代码:

import android.net.sip.SipSession;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import com.squareup.picasso.Picasso;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;
/*Connect contact list to
 *
 * */

public class ContactAdapter extends RecyclerView.Adapter<ContactAdapter.ContactViewHolder> {

    private List<Contact> contacts;
    public ContactAdapter(List<Contact> contacts) {
        this.contacts = contacts;
    }

    interface ContactsListener{
        void onContactClicked(int position,View view);
    }
    ContactsListener listener;

public void setListener(ContactsListener listener){

    this.listener=listener;
}




    public class ContactViewHolder extends RecyclerView.ViewHolder {

        ImageView contactpicture;
        TextView contactname;
        TextView contactphone;
        TextView contactemail;



        public ContactViewHolder(View itemview) {

            super(itemview);
            contactpicture = itemview.findViewById(R.id.card_image);
            contactphone = itemview.findViewById(R.id.contact_email);

            contactphone = itemview.findViewById(R.id.contact_phone);
            contactname = itemview.findViewById(R.id.contact_name);
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (listener != null)
                        listener.onContactClicked(getAdapterPosition(), view);
                }
            });
        }
    }
    @Override

    public ContactViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
            View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.contact_layout,parent,false);
            ContactViewHolder holder=new ContactViewHolder(view);
            return holder;

        }
    @Override

    public void onBindViewHolder(ContactViewHolder holder,int position){
        Contact contact=contacts.get(position);
        holder.contactpicture.setImageBitmap(contact.getPhoto());
        holder.contactname.setText(contact.getName());
        holder.contactphone.setText(contact.getPhone());
        holder.contactemail.setText(contact.getEmail());

        }
    @Override

    public int getItemCount(){

            return contacts.size();
        }
    } 
  
package com.example.b_safe;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;

import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

/*Define the list of contacts*/
public class ContactsList extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle saveInstanceState){

        super.onCreate(saveInstanceState);
        setContentView(R.layout.show_contacts_activity);//לבדוק שזה מתקיים
        RecyclerView recyclerview=findViewById(R.id.contacts_list);
        recyclerview.setHasFixedSize(true);
        recyclerview.setLayoutManager(new LinearLayoutManager( this));//צריך להוסיף this
        ContactManager manager=ContactManager.getInstance(this);
        ContactAdapter adapter=new ContactAdapter(manager.getContacts());
        recyclerview.setAdapter(adapter);
        adapter.setListener(new ContactAdapter.ContactsListener() {
            @Override
            public void onContactClicked(int position, View view) {

            }
        });

    }
}
package com.example.b_safe;

import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
/*Adds new member to the contacts list
 *
 *
 * */
public class AddContactActivity extends AppCompatActivity{
    Bitmap bitmap;
    EditText nameEt,phone_numberEt,emailEt;
    ImageView img;
    final int CAMERA_REQUEST=1;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.add_contact_activity);
        nameEt=findViewById(R.id.name_input);
        phone_numberEt=findViewById(R.id.phone_input);
        emailEt=findViewById(R.id.email_input);
        img=findViewById(R.id.photo_result);
        Button takepicture=findViewById(R.id.take_pic);
        takepicture.setOnClickListener(new View.OnClickListener() {//Activation
            @Override
            public void onClick(View v) {

                Intent camera=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camera,CAMERA_REQUEST);
            }
        });


    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==CAMERA_REQUEST&&resultCode==RESULT_OK){ //checks if results where properly
            bitmap=(Bitmap)data.getExtras().get("data");
            img.setImageBitmap(bitmap);//saving as contact's photo
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {//Load menu type
        getMenuInflater().inflate(R.menu.contact_menu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {//fulfill actions

        switch(item.getItemId()){
            case R.id.action_save:
                AlertDialog.Builder builder=new AlertDialog.Builder(this);
                builder.setTitle("Please confirm")
                        .setMessage("Would you like to save the following contact?")
                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                                Contact contact=new Contact(nameEt.getText().toString(),phone_numberEt.getText().toString(),emailEt.getText().toString(),bitmap);
                                ContactManager manager=ContactManager.getInstance(AddContactActivity.this);
                                manager.addContact(contact);//Manager saved data

                                //Data zeroing
                                nameEt.setText("");
                                phone_numberEt.setText("");
                                emailEt.setText("");
                                img.setImageBitmap(null);

                            }})
                        .setNegativeButton("No", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(AddContactActivity.this,"The conatct saved",Toast.LENGTH_SHORT).show();

                            }
                        })
                        .setNegativeButton("No", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(AddContactActivity.this,"The conatct saved",Toast.LENGTH_SHORT).show();

                            }
                        }).show();
                break;
            case R.id.action_back:
                finish();

        }
        return super.onOptionsItemSelected(item);//Loads activity
    }
}

AdapterActivity 是子类适配器 AddContactActivity 创建新联系人,问题在于 ContactsList 活动,它包含列表但不显示

0 个答案:

没有答案