Hallo, ich bin ein Amateur in Android, und ich habe ein großes Problem mit Aktivitätsmethoden in meiner Fragmentklasse.Verwenden von Aktivitätsmethoden in Fragment
Ich möchte setContentView
, findViewById
und getMenuInflater
implementieren. Leider weiß ich nicht, wie es geht.
public class WagaFragment extends Fragment{
private Spinner fromSpinner, toSpinner;
private EditText fromEditText, toEditText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
**setContentView**(R.layout.activity_main);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.units, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
fromSpinner = (Spinner) **findViewById**(R.id.spinner_from);
toSpinner = (Spinner) **findViewById**(R.id.spinner_to);
fromSpinner.setAdapter(adapter);
toSpinner.setAdapter(adapter);
fromEditText = (EditText) **findViewById**(R.id.editText_from);
toEditText = (EditText) **findViewById**(R.id.editText_to);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(R.string.app_name);
toolbar.setTitleTextColor(Color.YELLOW);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
**getMenuInflater()**.inflate(R.menu.menu_main, menu);
return true;
}
public void konwertuj(View view) {
// Get the string from the Spinners and number from the EditText
String fromString = (String) fromSpinner.getSelectedItem();
String toString = (String) toSpinner.getSelectedItem();
double input = Double.valueOf(fromEditText.getText().toString());
// Convert the strings to something in our Unit enu,
Konwerter.Jednostka fromJednostka = Konwerter.Jednostka.fromString(fromString);
Konwerter.Jednostka toJednostka = Konwerter.Jednostka.fromString(toString);
// Create a converter object and convert!
Konwerter konwerter = new Konwerter(fromJednostka, toJednostka);
double result = konwerter.convert(input);
toEditText.setText(String.valueOf(result));
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_fragment_1, container, false);
}
}
Sie müssen die Grundlagen der Fragmente gehen. So erstellen und inflationieren Sie ein Fragment nicht und greifen Sie auf einige Aktivitätsmethoden zu, die Sie verwenden können getActivity() – mobilepotato7
Sie sollten die Methoden von activity nicht in Ihren Fragmenten verwenden, während Sie sie entwerfen. Sie sollten stattdessen Ihr Fragment als Standalone-Box mit einer Standard- und vordefinierten Schnittstelle mit seiner übergeordneten Aktivität entwerfen. Ein Fragment sollte seine Grenzen nicht überschreiten, zum Beispiel sollten Fragmente nicht 'setContentView' ihrer Fragmente verwenden. Ein Fragment muss nur für seine eigene Ansicht verantwortlich sein, nicht für die seiner übergeordneten Aktivität. –