我已经在论坛中搜索了答案,但是找不到与我的情况完全相符的问题。
我在触发onclicklistener时遇到问题。同一段代码在应用程序的其他部分中起作用,这使我感到困惑。
这是我的代码:
private static final int RESULT_LOAD_IMAGES = 1;
TextView filepath_name;
EditText varighed, navn;
Spinner genre, kategori;
Button uploadImg, opret_knap;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
uploadImg = (Button) view.findViewById(R.id.billede_button);
opret_knap = (Button) view.findViewById(R.id.addOpskrift);
varighed = (EditText) view.findViewById(R.id.opskrift_varighed);
navn = (EditText) view.findViewById(R.id.opskrift_navn);
genre = (Spinner) view.findViewById(R.id.opskrift_genre);
kategori = (Spinner) view.findViewById(R.id.opskrift_kategori);
filepath_name = (TextView) view.findViewById(R.id.billede_path);
uploadImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGES);
}
});
opret_knap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Tilføjopskrift();
}
});
return view;
}
还有XML
<Button
android:id="@+id/billede_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Tilføj billede"
/>
<TextView android:id="@+id/billede_path"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_gravity="center" />
<Button android:id="@+id/addOpskrift"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:text="Opret"/>
答案 0 :(得分:2)
在您的XML中,您为按钮赋予了ID opret_knap
<Button
android:id="@+id/opret_knap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="30dp"
android:text="Opret"/>
但是您正在使用addOpskrift
更改
opret_knap = (Button) view.findViewById(R.id.addOpskrift);
到
opret_knap = (Button) view.findViewById(R.id.opret_knap);
答案 1 :(得分:1)
问题似乎是您未指定片段应访问的布局。
代替:
super.onCreateView()
使用
View view = inflater.inflate(R.layout.xyz, container, false);
希望有帮助。
答案 2 :(得分:0)
您的问题是您没有正确地理解新的观点。 您需要使用:
View view = super.onCreateView(inflater, container, savedInstanceState);
代替:
private static final int RESULT_LOAD_IMAGES = 1;
TextView filepath_name;
EditText varighed, navn;
Spinner genre, kategori;
Button uploadImg, opret_knap;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.your_file_name, container, false);
uploadImg = (Button) view.findViewById(R.id.billede_button);
opret_knap = (Button) view.findViewById(R.id.addOpskrift);
varighed = (EditText) view.findViewById(R.id.opskrift_varighed);
navn = (EditText) view.findViewById(R.id.opskrift_navn);
genre = (Spinner) view.findViewById(R.id.opskrift_genre);
kategori = (Spinner) view.findViewById(R.id.opskrift_kategori);
filepath_name = (TextView) view.findViewById(R.id.billede_path);
uploadImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, RESULT_LOAD_IMAGES);
}
});
opret_knap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Tilføjopskrift();
}
});
return view;
}
。
只需复制并粘贴。
{{1}}