2017-09-20 1 views
0

Ich habe 3 Tabs in meiner Tabbed-Aktivität. Ich habe 3 Klassen erstellt, die Fragment erweitern und meine Layouts hinzugefügt haben. Wenn ich es laufe, funktioniert es gut. Also habe ich einige EditText-Widgets und einen Button zu meinem zweiten Tab hinzugefügt. Meine Frage ist: wo gebe ich Java-Code ein, um zum Beispiel onClickListener für diese Schaltfläche zu bearbeiten. Ich habe versucht, es in dieser Haupt-Aktivitätsklasse zu tun, aber dann stürzte die App ab.Android Tabbed-Aktivität und Java-Code?

+0

Wenn Sie den Code benötigen, erstellen Sie einfach ein neues Projekt in Android Studio und wählen Sie "Tabbed Activity" statt "Empty Activity". Sie finden einen perfekten Code und Sie können sich darauf beziehen. – zackygaurav

Antwort

0

Sie können diesen Code in das entsprechende Fragment der Registerkartenaktivität einfügen. Die Anwendung wird abstürzen, weil die Aktivität nicht auf die Sichten zugreifen kann, die in einem Fragment aufgebläht werden. Sie können wie folgt tun:

public class PageFragment extends Fragment { 
    public static final String ARG_PAGE = "ARG_PAGE"; 

    private int mPage; 

    public static PageFragment newInstance(int page) { 
     Bundle args = new Bundle(); 
     args.putInt(ARG_PAGE, page); 
     PageFragment fragment = new PageFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPage = getArguments().getInt(ARG_PAGE); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_page, container, false); 
     TextView textView = (TextView) view; 
     textView.setText("Fragment #" + mPage); 
     return view; 
    } 
} 

mehr für diese tutorial überprüfen.

0

Sie müssen Button-Klick-Code zu entsprechenden Fragment, d. H. Zweite Registerkarte in Ihrem Fall hinzufügen. Schreiben Sie keinen Code für Aktivitäten, die dieses Fragment hosten.

+0

Aber in diesem Java-Datei findViewById –

+0

Nutzen Sie diesen Code auf Ihrem zweiten Fragment @Override Öffentlichkeit onCreateView (LayoutInflater inflater, Viewgroup Behälter, Gebündelt savedInstanceState) { endgültige Ansicht view = inflater.inflate (R Ich kann nicht verwenden .layout.second_fragment, container, false); \t final Schaltfläche recyclerView = (Schaltfläche) view.findViewById (R.id.mybutton); // Button click code hier hinzufügen Rückansicht; } –

+0

@slaven Sie müssen View.findviewbyid in Fragment verwenden –

Verwandte Themen