gpt4 book ai didi

android - setOnClickListener() 上的空指针异常

转载 作者:行者123 更新时间:2023-11-30 05:04:05 25 4
gpt4 key购买 nike

我想从此 fragment 访问来自不属于该 fragment 的另一个布局的 View 。这就是我得到 NullPointerException 的原因。

我该如何解决这个问题?

fragment 代码

public class Pacijenti_fragment extends Fragment  {
//this is the JSON Data URL


public final static String MESSAGE_KEY= "com.example.android.app";
//a list to store all the products
List<Pacijent> pacijentList;
String id="";
String ID="";
//the recyclerview
RecyclerView recyclerView;
private SearchView searchView;
private PacijentiAdapter adapter;
Button btnPogled;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View view=inflater.inflate(R.layout.pacijenti_fragment, container, false);

//getting the recyclerview from xml
recyclerView = (RecyclerView)view.findViewById(R.id.recylcerView);
recyclerView.setHasFixedSize(true);
recyclerView.addItemDecoration(new MyDividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL, 36));
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

//initializing the productlist
pacijentList = new ArrayList<>();
btnPogled=(Button)findViewById(R.id.btnDodaj); //here i make my button
Bundle b=getArguments();
this.id=b.getString("id");
System.out.println(id);
ID = this.id;
btnPogled.setOnClickListener(new View.OnClickListener(){ //here i get null pointer
@Override
public void onClick(View v) {
OnPogled();
}
});

//this method will fetch and parse json
//to display it in recyclerview
loadPacijenti();



return view;

}

这是我放置按钮的另一个 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/GornjiLayout"
>
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Jane"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#000000" />

<TextView
android:id="@+id/textViewSurname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_marginLeft="5dp"

android:layout_toRightOf="@id/textViewName"
android:text="Doe"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#000000"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/SredjiLayout"
android:layout_below="@id/GornjiLayout"
>
<TextView
android:id="@+id/textViewDateOfBirth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textViewName"
android:layout_marginLeft="5dp"
android:layout_marginRight="150dp"
android:layout_marginTop="5dp"



android:text="21.05.1989"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textStyle="bold" />

<Button
android:id="@+id/buttonDodaj"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:text="Otvori" />


</LinearLayout>
<TextView
android:id="@+id/textViewAdress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/SredjiLayout"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"

android:text="Some street 45, UnknownVille"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textStyle="bold" />
</RelativeLayout>

</LinearLayout>

我不知道如何从 fragment 访问其他 xml。这个 xml 是单独的文件,因为它与我编写的特定适配器一起进入 recyclerview。并且此按钮需要位于该回收站 View 内,因为每个按钮都应传递数据库中每个人的 ID。

最佳答案

好的,我明白你的意思了,所以基本上你想做的是从你的回收者 View 中的另一个 xml 访问一个按钮,因为它只需引用这段代码,并在你的 oncreate View 持有者的适配器类中进行所有更改,指定您将从中访问按钮的 xml 文件:

public class ManagerTaskListAdapter extends RecyclerView.Adapter<ManagerTaskListAdapter.ProjectViewHolder> {

private ArrayList<Taskmsg> dataList;
private ArrayList<Project> projects;

Context mContext;


public ManagerTaskListAdapter(ArrayList<Taskmsg> dataList, Context mContext) {
this.dataList = dataList;
this.mContext=mContext;
}

@Override
public ProjectViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view = layoutInflater.inflate(R.layout.man_task_list_item, parent, false);
return new ProjectViewHolder(view);
}

@Override
public void onBindViewHolder(ProjectViewHolder holder, int position) {
String fname=dataList.get(position).getEmpFirstName();
String lname=dataList.get(position).getEmpLastName();
String prdesc=dataList.get(position).getTaskDescription();
String pid= dataList.get(position).getProjectId().toString();
String em=dataList.get(position).getTaskCreatedBy();
String taskid=dataList.get(position).getTaskId().toString();
prdesc = prdesc.replaceAll("\\<.*?\\>", "");
holder.txttname.setText(dataList.get(position).getTaskName());
holder.txttdesc.setText(prdesc);
holder.txttaskcrt.setText(dataList.get(position).getTaskCreatedBy());
holder.txtempname.setText(fname +" "+ lname);
holder.itemView.setOnClickListener(v -> {
Intent in=new Intent(mContext,TaskDetails.class);
in.putExtra("tid",taskid);
in.putExtra("pid",pid);
in.putExtra("email",em);
mContext.startActivity(in);



});

}



@Override
public int getItemCount() {

return dataList.size();

}

class ProjectViewHolder extends RecyclerView.ViewHolder {

TextView txttname,txttdesc,txtempname,txttaskcrt;
ProjectViewHolder(View itemView) {
super(itemView);
txttname = (TextView) itemView.findViewById(R.id.tv_taskname);
txttaskcrt=itemView.findViewById(R.id.tv_taskcreatedby);
txttdesc = (TextView) itemView.findViewById(R.id.tv_taskdescription);
txtempname = (TextView) itemView.findViewById(R.id.tv_empname);
}
}

}

关于android - setOnClickListener() 上的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54864169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com