私は最初の断片で作業しています...主なアクティビティでは、私はspinnerListnerを持っていて、断片的なコンテナ内の項目が変更されると断片的な変更が発生し、fragment.xmlファイルにいくつかのチェックボックスが作成されました...私はちょうどチェックしたすべてのチェックボックスに対して別の値 "NameoftheCheckbox"とチェックサムチェックボックス(コンテナーに表示されていないフラグメントからも)ごとに別の値 "Null"をポストして保存するだけです。私は私のメインの活動でのregisterUser機能により名前とピンを保存しようとしています道...のような私はフラグメントの中にチェックボックスを持っていて、私はそれが私の主な活動の中にある登録ボタンのクリックでいくつかのデータを投稿したいですか?
マイMainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText et_Name, et_Pin;
private Button RegisterBTN;
private ProgressDialog progressDialog;
private CheckBox checka, checkb;
private Spinner sDropdown;
ArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_Name = (EditText)findViewById(R.id.etName);
et_Pin = (EditText)findViewById(R.id.etPin);
checka = (CheckBox)findViewById(R.id.checkBox_a);
RegisterBTN = (Button)findViewById(R.id.btn_Reg);
progressDialog = new ProgressDialog(this);
//progressDialog.setMessage();
adapter = ArrayAdapter.createFromResource(this, R.array.spinner_options, android.R.layout.simple_spinner_item);
spinnerListner();
RegisterBTN.setOnClickListener(this);
}
public void spinnerListner(){
sDropdown = (Spinner)findViewById(R.id.spinner2);
sDropdown.setAdapter(adapter);
sDropdown.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:
getSupportFragmentManager().beginTransaction().replace(R.id.frag, Info_frag.newInstance()).addToBackStack(null).commit();
break;
case 1:
getSupportFragmentManager().beginTransaction().replace(R.id.frag, Plumber_frag.newInstance()).addToBackStack(null).commit();
break;
case 2:
getSupportFragmentManager().beginTransaction().replace(R.id.frag, Painter_frag.newInstance()).addToBackStack(null).commit();
break;
case 3:
getSupportFragmentManager().beginTransaction().replace(R.id.frag, Electrician_frag.newInstance()).addToBackStack(null).commit();
//Toast.makeText(MainActivity.this,"F3", Toast.LENGTH_SHORT).show();
break;
}
/**
* TextView spinnerDailogText = (TextView)view;
Toast.makeText(MainActivity.this, "You selected:"+ spinnerDailogText.getText(), Toast.LENGTH_SHORT).show();*/
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}
);
}
private void registerUser(){
final String name = et_Name.getText().toString().trim();
final String pin = et_Pin.getText().toString().trim();
progressDialog.setMessage("Registering please wait...");
progressDialog.show();
StringRequest stringRequest = new StringRequest(Request.Method.POST,
Constants.REGISTER,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
try {
JSONObject jsonObject = new JSONObject(response);
Toast.makeText(getApplicationContext(), jsonObject.getString("message"), Toast.LENGTH_LONG).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.hide();
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("reg_name", name);
params.put("reg_pin", pin);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
@Override
public void onClick(View v) {
if (v == RegisterBTN);
registerUser();
}
}
マイFragmentActivity
public class Electrician_frag extends Fragment {
public static Electrician_frag newInstance() {
Electrician_frag fragment = new Electrician_frag();
return fragment;
}
public Electrician_frag(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.fragment_electrician, container, false);
return rootview;
}
}
別のフラグメント活動
public class Painter_frag extends Fragment {
public static Painter_frag newInstance(){
Painter_frag fragment = new Painter_frag();
return fragment;
}
public Painter_frag(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.fragment_painter, container, false);
return rootview;
}
}
マイPainterFragment.xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white">
<CheckBox
android:id="@+id/checkBox_x"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="124dp"
android:layout_marginStart="124dp"
android:text="@string/a"
android:textSize="20sp"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkBox_y"
style="@android:style/Widget.Holo.Light.CompoundButton.CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="70dp"
android:layout_marginStart="70dp"
android:layout_toEndOf="@+id/checkBox_x"
android:layout_toRightOf="@+id/checkBox_x"
android:text="@string/b"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
</FrameLayout>
getActivity()にclicklistenerを登録します。 –
すべてのフラグメント 'CheckBox'にパブリックゲッターを追加し、' registerUser() 'メソッドでそれらの値を読み出そうとすることができます。 – redead
こんにちはJaydeep patel私のコードを編集してくれますか? –