android как правильно добавить к существующему приложению меню NavigationViewAndroid

187
10 января 2018, 18:19

Подскажите как правильно слить 2 проекта: один это выезжающее слева меню использующее ButterKnife, а второе шахматы. Мне надо добавить это меню к шахматам. Неужели придется код из MainActivity из приложения-меню добавлять в MainActivity шахмат? Если ли более красивое решение?

вот MainActivity шахмат:

public class MainActivity extends AppCompatActivity implements OnTouchListener  {
    DrawTest drawView;
    private Button mButton;
    AttributeSet attributeSet;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            setContentView(R.layout.activity_main);
            drawView=(DrawTest)findViewById(R.id.drawTest);
            drawView.setOnTouchListener(this);
            Display display = getWindowManager().getDefaultDisplay();
            Point size = new Point();
            display.getSize(size);
            int width = size.x;
            String game_status = drawView.desc1.get_game_status();
            TextView textEl = (TextView) findViewById(hod);
            textEl.setText( game_status);

            drawView.setLayoutParams(new LinearLayout.LayoutParams(width, width));
            mButton=(Button)findViewById(R.id.button1);
            View.OnClickListener oclBtnClear = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   // Toast toast = Toast.makeText(getApplicationContext(),"начать сначала",Toast.LENGTH_LONG);
                   //toast.show();
                    drawView.clear_desc();
                    drawView.invalidate();
                    v.invalidate();
                }
            };
            mButton.setOnClickListener(oclBtnClear);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {
       // Toast toast = Toast.makeText(getApplicationContext(),String.valueOf(Math.round(event.getX())) +"  " +String.valueOf(Math.round(event.getY())) ,Toast.LENGTH_SHORT);
       // toast.show();
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

                this.drawView.desc1.Play(Math.round(event.getX()), Math.round(event.getY()));
                String game_status = drawView.desc1.get_game_status();
                TextView textEl = (TextView) findViewById(hod);
                textEl.setText( game_status);
                v.invalidate();
                break;
        }
        return true;
    }
}

Это MainActivity из приложения-меню:

public class MainActivity extends AppCompatActivity implements RecyclerAdapter.ItemClickChild{
    @BindView(R.id.recyclerView)
    RecyclerView recyclerView;
    @BindView(R.id.nav_view)
    NavigationView navView;
    @BindView(R.id.drawer_layout)
    DrawerLayout drawerLayout;
    Constant constant_menu = new Constant();

    @BindView(R.id.toolbar)
    Toolbar toolbar;
    @BindView(R.id.frame)
    FrameLayout frame;
    TitleFragment fragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        setSupportActionBar(toolbar);
        final ActionBar actionar = getSupportActionBar();
        actionar.setDisplayHomeAsUpEnabled(true);
        actionar.setHomeAsUpIndicator(R.drawable.ic_menu);
        List<TitleMenu> list = getList();
        RecyclerAdapter adapter = new RecyclerAdapter(this, list, this);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setAdapter(adapter);
        recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
        recyclerView.setAdapter(adapter);
        setFragment();
    }
    private void setFragment() {
        fragment = new TitleFragment();
        FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.frame, fragment, "TitleFragment").commit();
    }
    private List<TitleMenu> getList() {
        List<TitleMenu> list = new ArrayList<>();

        // Получаем набор элементов
        Set<Map.Entry<String, List<String>>> set =  constant_menu.menumap.entrySet();
        for (Map.Entry<String, List<String>> me : set) {
            List<SubTitle> subTitles = new ArrayList<>();
            List<String> subnamesarr = me.getValue();
            for (String subname : subnamesarr) {
                SubTitle subTitle = new SubTitle(subname);
                subTitles.add(subTitle);
            }
            TitleMenu model = new TitleMenu(me.getKey(), subTitles, null);
            list.add(model);
        }
        return list;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            drawerLayout.openDrawer(GravityCompat.START);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    @Override
    public void onChildClick(int position) {
        // Получаем набор элементов
        //Set<Map.Entry<String, List<String>>> set =  constant_menu.menumap.entrySet();
        //String name = set.;
        drawerLayout.closeDrawers();
        //fragment.setTitle(name);
    }
}
READ ALSO
Как узнать содержимое json файла

Как узнать содержимое json файла

Есть json файлВ нем либо объект (Map), либо массив (ArrayList)

209
Работа RandomAccessFile.seek()

Работа RandomAccessFile.seek()

Пожалуйста, объясните как работает данный методТо, что он перемещает курсор на определенную позицию в байтах это я знаю, но все равно у меня...

168
Отображение CoordinatorLayout

Отображение CoordinatorLayout

Вообщем у меня есть CoordinatorLayout и мну нужно его редактировать, но проблема в том, что его preview не отображается в android Studio? А запускать по 500 раз...

238
WebSocket подключение с VPN

WebSocket подключение с VPN

Сервер Tomcat 8 (Java EE)Машина Ubuntu 16

234