1. ホーム
  2. android

[解決済み] フラグメント内の findViewById を解決できない [重複] 。

2022-02-10 04:30:18

質問

フラグメントXMLからidを取得しようとしているので、以下にコードを示します。 エラーは findViewById メソッドを解決できません。

を使用する方法はありますか? findViewById を使うことができますか?

public class Slide_Teacher_Add extends Fragment implements View.OnClickListener {

private EditText teacher_id_number;
private EditText teacher_fullname;
private EditText teacher_lesson;
private EditText teacher_contact;

private Button btn_add_teacher;

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.activity_slide__teacher_add,container,false);
    return v;

    teacher_id_number = (EditText) findViewById(R.id.teacher_id_number);
    teacher_fullname = (EditText) findViewById(R.id.teacher_fullname);
    teacher_lesson = (EditText) findViewById(R.id.teacher_lesson);
    teacher_contact = (EditText) findViewById(R.id.teacher_contact);

    btn_add_teacher = (Button) findViewById(R.id.btn_add_teacher);


    btn_add_teacher.setOnClickListener(this);
}

解決方法は?

まず、あなたが findViewById() は return 文の後で実行されるため、全く実行されません。次に findViewById() のように、ビューのコンテキスト上で view.findViewById(int); というようにコードを書き換えます。

View v = inflater.inflate(R.layout.activity_slide__teacher_add,container,false);
teacher_id_number = v.findViewById(R.id.teacher_id_number); //Note this line
//other tasks you need to do
return v;

を確認します。 return は関数の最後の文です。