Нужна помощь с TabLayout

316
12 марта 2017, 05:17

Сделал TabLayout в стиле Material Design:

У меня есть 12 EditText, мне нужно независимо в какой EditText я напишу число, оно должно появиться сразу во всех других EditText, уточняю что именно у меня не получается (пример:мне надо например я ввел в первый edittext число а во втором edittext это число поделить на 2 и в 3 edittext поделит на 4 и так далее )

// Converter

public class Converter extends AppCompatActivity{
    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.converter);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);
        tabLayout = (TabLayout) findViewById(R.id.tablayout);
        tabLayout.setupWithViewPager(viewPager);
    }
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter_converter adapter = new ViewPagerAdapter_converter(getSupportFragmentManager());
        adapter.addFragment(new PeopleFragment_converter(), "Метрические:");
        adapter.addFragment(new PeopleFragment_converter(), "Английские /Американские:");
        adapter.addFragment(new PeopleFragment_converter(), "Тройская система веса:");
        adapter.addFragment(new PeopleFragment_converter(), "Британская аптечная:");
        adapter.addFragment(new PeopleFragment_converter(), "Японские единицы веса:");
        adapter.addFragment(new PeopleFragment_converter(), "Китайские единицы веса:");
        adapter.addFragment(new PeopleFragment_converter(), "Старорусские меры веса:");
        viewPager.setAdapter(adapter);
    }
    }

// ViewPagerAdapter_converter

 public class ViewPagerAdapter_converter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();
    public ViewPagerAdapter_converter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }
    @Override
    public int getCount() {
        return mFragmentList.size();
    }
    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }
}

// PeopleFragment_converter

public class PeopleFragment_converter extends Fragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.peoplefragment_converter, container, false);
    }
}

вот что получилось но это не то что должно быть

public class PeopleFragment_converter extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View viewPager = inflater.inflate(R.layout.peoplefragment_converter, container, false);
    final EditText editText1 = (EditText) viewPager.findViewById(R.id.a1);
    EditText editText2 = (EditText) viewPager.findViewById(R.id.a2);
    EditText editText3 = (EditText) viewPager.findViewById(R.id.a3);
    EditText editText4 = (EditText) viewPager.findViewById(R.id.a4);
    final EditText [] editTexts = new EditText[] {editText1, editText2, editText3, editText4};
    final TextWatcher textWatcher = new TextWatcher() {
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {       }
        public void onTextChanged(CharSequence s, int start, int before, int count) {        }
        @Override
        public void afterTextChanged(Editable s) {
            for (EditText editText : editTexts) {
                if (!editText.hasFocus()) {
                    editText.setText(s);
                }
            }
        }
    };

    for (EditText editText : editTexts) {
        editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                EditText chosenEditText = (EditText)view;
                if (b) {
                    chosenEditText.addTextChangedListener(textWatcher);
                }
                else {
                    chosenEditText.removeTextChangedListener(textWatcher);
                }
            }
        });
    }
return viewPager;
}
READ ALSO
Трансляция видео на twitch средствами Java

Трансляция видео на twitch средствами Java

Переломной стоит задача, средствами Java научиться стримить на сервис Twitch

353
Как не перерисовывать фон, а только двигающиеся по экрану объекты

Как не перерисовывать фон, а только двигающиеся по экрану объекты

Наверняка есть способы не перерисовывать статичный монотонный фон, а только изменять положение объектов на немКак это осуществляется ? Я рисую...

321
Взаимодействие Java-кода с библиотекой .dll с com-интерфейсом

Взаимодействие Java-кода с библиотекой .dll с com-интерфейсом

Всем привет! Ребята, нужна ваша помощь: пишу программу на Java, которая взаимодействует с приложением через com-интерфейс (использую библиотеку...

311