私はAndroidの開発は初めてですが、私はSwing/WPF(C#)GUIの経験がかなりあります。私がしようとしていることは次のとおりです:再利用可能なビュー?
私はBottomNavigationView
に3つの別々のビューを持っています。私の問題は、フラグメントのうちの2つのインターフェースの一部は、同一のセットで構成されていることである
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.one:
findViewById(R.id.one).setVisibility(View.VISIBLE);
findViewById(R.id.two).setVisibility(View.GONE);
findViewById(R.id.threee).setVisibility(View.GONE);
return true;
// ... and so on
:各ビューはOnNavigationItemSelectedListener
介しMainActivity Javaコードに隠され/示されている断片として実装されていますEditText
およびImageButton
。だから私はコードを倍増する代わりに、何かを再利用できるものにすることを考えました。私の選択肢はフラグメント内にフラグメントを作ることです(ただし、インターネット上ではこれはお勧めできません)、再利用可能なビューを作成することです(https://developer.android.com/training/improving-layouts/reusing-layouts.html、https://developer.android.com/guide/topics/ui/custom-components.html)。それを行う最善の方法は何ですか?私はEditText
とButtons
とのやり取りに耳を傾けることができる、接続されたJavaコードを持つxmlレイアウトを持っていきたいと思います。たぶん私は私のWPFの経験に偏っているが、私はxaml + codebehindのようにしようとしているが、これはAndroidアプリを構築するときに問題に取り組む正しい方法ではないかもしれない。
Javaコード内の同じビューで行うために、同じ方法を使用する場合は、あなたのアプリケーションロジックに応じて、同じことを行うには、静的メソッドを宣言したが、私はどのように答えを与えていますビューを再利用することはできますが、それが私の質問にコメントしたいものではない場合、私は自分の答えを編集するものを説明してください! – Xenolion