簡體   English   中英

單擊按鈕后,在回收站視圖中顯示AlertDialog

[英]AlertDialog in recycler view on button click

當我點擊btnSubmit時,我的應用程序崩潰了。 並給出這個錯誤

java.lang.NullPointerException:嘗試在空對象引用上調用虛擬方法'android.content.res.Resources $ Theme android.content.Context.getTheme()'。

下面寫的代碼;

公共類RecycleAdoptor擴展了RecyclerView.Adapter {

Context cont;
DataSource ds;
Double lon = 0.0;
Double lat = 0.0;
RecycleAdoptor(Context paramContext)
{
    this.cont = paramContext;
}
private List<Employee> mDocs;

@Override
public RecycleAdoptor.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Log.e("jarvis", "RecylerAdoptor");
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    View v = inflater.inflate(R.layout.activity_list_items, parent, false);
    // set the view's size, margins, paddings and layout parameters
    ViewHolder vh = new ViewHolder(v);
    return vh;

}

public RecycleAdoptor(List<Employee> myDataset, Context context) {
    mDocs = myDataset;

}

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    // - get element from your dataset at this position
    // - replace the contents of the view with that element

    final Employee emp = mDocs.get(position);

    holder.empID.setText(emp.getID());
    holder.empName.setText(emp.getEmpName());
    holder.empDesignation.setText(emp.getDesignation());
    holder.empSpeciality.setText(emp.getSpeciality());
    holder.empAddress.setText(emp.getAddress());

}
@Override
public int getItemCount() {
    return mDocs.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView empID;
    public TextView docID;
    public TextView empName;
    public TextView empAddress;
    public TextView empDesignation;
    public TextView empSpeciality;
    public TextView empStatus;
    public Button btnSaveAttd;
    public Spinner spinner;
    public View layout;

    public ViewHolder(View v) {
        super(v);
        layout = v;
        empID = (TextView) v.findViewById(R.id.emp_id);
        empName = (TextView) v.findViewById(R.id.empName);
        empDesignation = (TextView) v.findViewById(R.id.empDesignation);
        empSpeciality = (TextView) v.findViewById(R.id.empSpecialist);
        empAddress = (TextView) v.findViewById(R.id.empAddress);
        spinner = (Spinner) v.findViewById(R.id.spinner1);
        btnSaveAttd = (Button) v.findViewById(R.id.btnSaveAttd);

        btnSaveAttd.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Date currentTime = Calendar.getInstance().getTime();
                double lon = ProfileActivity.Lon;
                double lat = ProfileActivity.Lat;

                AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                        cont);
                alertDialog.setTitle("Leave application?");
                alertDialog.setMessage("Are you sure you want to leave the application?");
                alertDialog.setIcon(R.drawable.ic_menu_camera);
                alertDialog.setPositiveButton("YES",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });
                alertDialog.setNegativeButton("NO",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });
                alertDialog.show();

           }
        });

    }
}

}

對不起,英語不好,但是需要認真的幫助...

我上傳我的答案。 及其工作正常,我提到我做錯問題的概率。

Context cont;
DataSource ds;
Double lon = 0.0;
Double lat = 0.0;
RecycleAdoptor(Context paramContext)
{
    this.cont = paramContext;
}
private List<Employee> mDocs;

@Override
public RecycleAdoptor.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    Log.e("jarvis", "RecylerAdoptor");
    LayoutInflater inflater = LayoutInflater.from(parent.getContext());
    View v = inflater.inflate(R.layout.activity_list_items, parent, false);
    // set the view's size, margins, paddings and layout parameters
    ViewHolder vh = new ViewHolder(v);
    return vh;

}

public RecycleAdoptor(List<Employee> myDataset, Context context) {
    mDocs = myDataset;

}

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    // - get element from your dataset at this position
    // - replace the contents of the view with that element

    final Employee emp = mDocs.get(position);

    holder.empID.setText(emp.getID());
    holder.empName.setText(emp.getEmpName());
    holder.empDesignation.setText(emp.getDesignation());
    holder.empSpeciality.setText(emp.getSpeciality());
    holder.empAddress.setText(emp.getAddress());

}
@Override
public int getItemCount() {
    return mDocs.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public TextView empID;
    public TextView docID;
    public TextView empName;
    public TextView empAddress;
    public TextView empDesignation;
    public TextView empSpeciality;
    public TextView empStatus;
    public Button btnSaveAttd;
    public Spinner spinner;
    public View layout;

    public ViewHolder(View v) {
        super(v);
        layout = v;
        empID = (TextView) v.findViewById(R.id.emp_id);
        empName = (TextView) v.findViewById(R.id.empName);
        empDesignation = (TextView) v.findViewById(R.id.empDesignation);
        empSpeciality = (TextView) v.findViewById(R.id.empSpecialist);
        empAddress = (TextView) v.findViewById(R.id.empAddress);
        spinner = (Spinner) v.findViewById(R.id.spinner1);
        btnSaveAttd = (Button) v.findViewById(R.id.btnSaveAttd);

        btnSaveAttd.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Date currentTime = Calendar.getInstance().getTime();
                double lon = ProfileActivity.Lon;
                double lat = ProfileActivity.Lat;

                AlertDialog.Builder alertDialog = new AlertDialog.Builder(v.getContext());//Here I have to use v.getContext() istead of just cont. 
                alertDialog.setTitle("Leave application?");
                alertDialog.setMessage("Are you sure you want to leave the application?");
                alertDialog.setIcon(R.drawable.ic_menu_camera);
                alertDialog.setPositiveButton("YES",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });
                alertDialog.setNegativeButton("NO",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int which) {

                            }
                        });
                alertDialog.show();

           }
        });

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM