Ich versuche, Fragmente zu verwenden, um meine erste richtige Android App zu bauen. Ich habe eine Haupt-XML. Das obere Fragment besteht aus zwei vertikalen Fragmenten und besteht aus nur zwei TextViews. Der erste enthält statischen Text und der zweite enthält einen Wert, den ich später dynamisch aus SQL erhalten werde.Android: Wie aktualisiere ich meine TextView in einem Fragment
Wenn ich diese meine MainActivity.java ist es dann glücklich, den Wert des Textview-Updates in meinem ersten Fragment:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set the Text to try this out
TextView t = (TextView)findViewById(R.id.viewItem);
t.setText("Text to Display");
}
ich zwei Fragment XMLs und ein Java-Unterstützung haben jeweils so will ich setzen die Einstellung dieses Feldes in Java, das das Fragment unterstützt, und nicht das Java, das für die MainActivity vorgesehen ist.
Wenn ich es in das Fragment gesetzt sieht es wie folgt aus: -
public class FragmentMainTop extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
// -- inflate the layout for this fragment
return inflater.inflate(R.layout.fragmentmt, container,false);
// Set the Text to try this out
TextView t = (TextView)findViewById(R.id.viewItem);
t.setText("Text to Display");
}
Aber wenn ich dies tun bekomme ich einen Fehler auf der Textview-Zeile:
„Die Methode findViewById (int) ist undefiniert für den Typ FragmentMainTop "
Also warum kennt es diese Methode nicht? Ich habe ctl/shift/o, also weiß ich, dass ich die richtigen Importe habe. Ich möchte nicht meinen gesamten Code in MainActivity stecken, denn wenn ich das Fragment dann in einer anderen Aktivität verwenden will, muss ich den ganzen Code wiederholen.
Die Referenzen werden erfolgreich zurückgegeben, auch wenn ich ViewByID für die von fragment.getActivity() zurückgegebene Aktivität finde. Das dynamische Aktualisieren der Ansichten funktioniert jedoch immer noch nicht –