2017-02-21 33 views
0

привет, я хочу изменить этот код на фрагмент. базой этого кода является AppCompatActivity, и мне нужно изменить, но я не могу.AppCompatActivity to Fragment

мое использование Mainactivity фрагмент кода, чтобы показать всю страницу

фрагмент = новый FavoritesFragment();

, если я использую AppCompatActivity или изменить FavoritesFragment страницу Mainactivity получает ошибку

public class FavoritesFragment extends Fragment { 


    public static TextView txt_status ; 
    EditText et_amount , et_desc , et_email , et_mobile , et_mahsol ; 
    Button btn_pay ; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     txt_status = (TextView)findViewById(R.id.txt_status); 

     et_amount = (EditText)findViewById(R.id.et_amount); 
     et_desc = (EditText)findViewById(R.id.et_desc); 
     et_email = (EditText)findViewById(R.id.et_email); 
     et_mobile = (EditText)findViewById(R.id.et_mobile); 
     et_mahsol = (EditText)findViewById(R.id.et_mahsol); 

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

     btn_pay.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if(et_amount.getText().toString().equals("") || Integer.parseInt(et_amount.getText().toString())<100){ 
        Toast.makeText(MainActivity.this,"مبلغ وارد شده صحیح نمیباشد",Toast.LENGTH_LONG).show(); 
       }else if(et_desc.getText().toString().equals("")){ 
        Toast.makeText(MainActivity.this,"وارد کردن توضیحات الزامیست !",Toast.LENGTH_LONG).show(); 
       }else if(et_email.getText().toString().equals("")){ 
        Toast.makeText(MainActivity.this,"وارد کردن hایمیل الزامیست !",Toast.LENGTH_LONG).show(); 
       }else if(et_mobile.getText().toString().equals("")){ 
        Toast.makeText(MainActivity.this,"وارد کردن شماره همراه الزامیست !",Toast.LENGTH_LONG).show(); 
       }else { 
        Intent intent = new Intent(MainActivity.this,Payment.class); 
        intent.putExtra("Amount",et_amount.getText().toString()); 
        intent.putExtra("Description",et_desc.getText().toString()); 
        intent.putExtra("Email",et_email.getText().toString()); 
        intent.putExtra("Mobile",et_mobile.getText().toString()); 
        intent.putExtra("Mahsol",et_mahsol.getText().toString()); 
        startActivity(intent); 
       } 

      } 
     }); 

    } 
} 
+0

Очевидно, что вы только что заменили AppCompatActivity с фрагментом, который, конечно, не будет работать. Какая ошибка? Вы посмотрели документацию Фрагмента? https://developer.android.com/guide/components/fragments.html – ElDuderino

+0

Можете ли вы разместить свой журнал ошибок. Пожалуйста, прочтите [this] (http://stackoverflow.com/help/how-to-ask). –

+0

любой может изменить этот код на фрагмент, это мой проект uni, и у меня нет времени. –

ответ

0

Фрагменты имеют разные функции обратного вызова жизненного цикла, так что вам нужно, чтобы узнать, не всегда можно найти готовый код. Вы должны смотреть здесь в течение 5 минут https://developer.android.com/guide/components/fragments.html

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.activity_main, container, false); 

    txt_status = (TextView) rootView.findViewById((R.id.txt_status); 

    et_amount = (EditText) rootView.findViewById(R.id.et_amount); 
    et_desc = (EditText) rootView.findViewById((R.id.et_desc); 
    et_email = (EditText) rootView.findViewById((R.id.et_email); 
    et_mobile = (EditText) rootView.findViewById((R.id.et_mobile); 
    et_mahsol = (EditText) rootView.findViewById((R.id.et_mahsol); 

    btn_pay = (Button) rootView.findViewById((R.id.btn_pay); 

    return rootView; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    btn_pay.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (et_amount.getText().toString().equals("") || Integer.parseInt(et_amount.getText().toString()) < 100) { 
       Toast.makeText(getContext(), "مبلغ وارد شده صحیح نمیباشد", Toast.LENGTH_LONG).show(); 
      } else if (et_desc.getText().toString().equals("")) { 
       Toast.makeText(getContext(), "وارد کردن توضیحات الزامیست !", Toast.LENGTH_LONG).show(); 
      } else if (et_email.getText().toString().equals("")) { 
       Toast.makeText(getContext(), "وارد کردن hایمیل الزامیست !", Toast.LENGTH_LONG).show(); 
      } else if (et_mobile.getText().toString().equals("")) { 
       Toast.makeText(getContext(), "وارد کردن شماره همراه الزامیست !", Toast.LENGTH_LONG).show(); 
      } else { 
       Intent intent = new Intent(getContext(), Payment.class); 
       intent.putExtra("Amount", et_amount.getText().toString()); 
       intent.putExtra("Description", et_desc.getText().toString()); 
       intent.putExtra("Email", et_email.getText().toString()); 
       intent.putExtra("Mobile", et_mobile.getText().toString()); 
       intent.putExtra("Mahsol", et_mahsol.getText().toString()); 
       startActivity(intent); 
      } 
     } 
    }); 
} 

Вы можете связать свои взгляды как этот

+0

спасибо большое. –

0

вы должны создать новый фрагмент, вы просто не можете заменить AppCompatActivity фрагментом. Фрагмент и активность различны и имеют другое поведение. лучше вы посмотрите здесь https://developer.android.com/guide/components/fragments.html

+0

Можете ли вы изменить этот код на фрагмент, это мой проект uni, и у меня нет времени –