如何将活动转换为导航抽屉的片段 [英] How do I convert activity to fragment for navigation drawer

查看:66
本文介绍了如何将活动转换为导航抽屉的片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

1周Android安卓新手。

我开发了一些基本的活动,我想实现导航抽屉只是我意识到我需要改成片段。根据我的基本活动,我知道应该怎么做。



公共类MainActivity扩展AppCompatActivity {
DatabaseReference db;
FirebaseHelper助手;
CustomAdapter适配器;
ListView lv;
EditText nameEditTxt,destinationEditTxt,originEditTxt;
public EditText dateEditTxt;
DatePickerDialog datePickerDialog;

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
工具栏工具栏=(工具栏)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

lv =(ListView)findViewById(R.id.lv);

// INITIALIZE FIREBASE DB
db = FirebaseDatabase.getInstance()。getReference();
helper = new FirebaseHelper(db);

// ADAPTER
adapter = new CustomAdapter(this,helper.retrieve());
lv.setAdapter(adapter);
FloatingActionButton fab =(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
displayInputDialog();
}
}};}

public void showPickerDialog(){
DatePickerDialog dpd = null;
if(android.os.Build.VERSION.SDK_INT> = android.os.Build.VERSION_CODES.N){
dpd = new DatePickerDialog(MainActivity.this);
dpd.setOnDateSetListener(new DatePickerDialog.OnDateSetListener(){
@Override
public void onDateSet(DatePicker datePicker,int i,int i1,int i2){
// here here如你所愿选择日期
字符串日期=年+ i +\ nmonth+ i1 +\ nay+ i2;
dateEditTxt.setText(日期);
}
});
}

if(dpd!= null)
dpd.show();
}

// DISPLAY输入对话框
private void displayInputDialog(){
Dialog d = new Dialog(this);
d.setTitle(添加新请求);
d.setContentView(R.layout.input_dialog);
nameEditTxt =(EditText)d.findViewById(R.id.nameEditText);
destinationEditTxt =(EditText)d.findViewById(R.id.destinationEditText);
originEditTxt =(EditText)d.findViewById(R.id.originEditText);
dateEditTxt =(EditText)d.findViewById(R.id.dateEditText);
按钮saveBtn =(按钮)d.findViewById(R.id.saveBtn);


dateEditTxt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
showPickerDialog();
}
});
// SAVE
saveBtn.setOnClickListener(new View.OnClickListener(){

public void onClick(View v){
// GET DATA
String name = nameEditTxt.getText()。toString();
String destination = destinationEditTxt.getText()。toString();
String origin = originEditTxt.getText()。toString();
String date = dateEditTxt.getText()。toString();
// SET DATA
Request s = new Request();
s.setName(name);
s .setOrigin(origin);
s.setDestination(destination);
s.setDate(date);

// SIMPLE VALIDATION

if( name!= null&& name.length()> 0){
// THEN SAVE
if(helper.save(s)){
// IF SAVED CLEAR EDITXT
dateEditTxt.setText( );
originEditTxt.setText();
destinationEditTxt.setText();
dateEditTxt.setText();

adapter = new CustomAdapter(MainActivity.this,helper.retrieve());
lv.setAdapter(adapter);
}
} else {
Toast.makeText(MainActivity.this,No empty fills,Toast.LENGTH_SHORT).show();
}
}
});
d.show();
}}





我的尝试:



尝试搜索教程,但我无法理解,有些解决方案不起作用

解决方案

参见片段| Android开发者 [ ^ ]。首先创建一个简单的测试,以便您可以看到它是如何工作的。您可能需要重新设计现有应用程序才能使用此功能。



另请参阅创建导航抽屉| Android开发者 [ ^ ]。

1-week-Android newbie here.
I developed some basic activities and I wanted to implement Navigation Drawer only I realized I need to change to fragment. Any idea what should I do given my basic activity.

public class MainActivity extends AppCompatActivity {
    DatabaseReference db;
    FirebaseHelper helper;
    CustomAdapter adapter;
    ListView lv;
    EditText nameEditTxt, destinationEditTxt, originEditTxt;
    public EditText dateEditTxt;
    DatePickerDialog datePickerDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        lv = (ListView) findViewById(R.id.lv);

        //INITIALIZE FIREBASE DB
        db = FirebaseDatabase.getInstance().getReference();
        helper = new FirebaseHelper(db);

        //ADAPTER
        adapter = new CustomAdapter(this, helper.retrieve());
        lv.setAdapter(adapter);
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                displayInputDialog();
            }
        });}

    public void showPickerDialog() {
        DatePickerDialog dpd = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
            dpd = new DatePickerDialog(MainActivity.this);
            dpd.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                    // here show picked date as you want
                    String date = "year " + i + "\nmonth " + i1 + "\nday " + i2;
                    dateEditTxt.setText(date);
                }
            });
        }

        if (dpd != null)
            dpd.show();
    }

    //DISPLAY INPUT DIALOG
    private void displayInputDialog() {
        Dialog d = new Dialog(this);
        d.setTitle("Add New Request");
        d.setContentView(R.layout.input_dialog);
        nameEditTxt = (EditText) d.findViewById(R.id.nameEditText);
        destinationEditTxt = (EditText) d.findViewById(R.id.destinationEditText);
        originEditTxt = (EditText) d.findViewById(R.id.originEditText);
        dateEditTxt = (EditText) d.findViewById(R.id.dateEditText);
        Button saveBtn = (Button) d.findViewById(R.id.saveBtn);


        dateEditTxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showPickerDialog();
            }
        });
        //SAVE
        saveBtn.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                //GET DATA
                String name = nameEditTxt.getText().toString();
                String destination = destinationEditTxt.getText().toString();
                String origin = originEditTxt.getText().toString();
                String date = dateEditTxt.getText().toString();
                //SET DATA
                Request s = new Request();
                s.setName(name);
                s.setOrigin(origin);
                s.setDestination(destination);
                s.setDate(date);

                //SIMPLE VALIDATION

                if (name != null && name.length() > 0) {
                    //THEN SAVE
                    if (helper.save(s)) {
                        //IF SAVED CLEAR EDITXT
                        dateEditTxt.setText("");
                        originEditTxt.setText("");
                        destinationEditTxt.setText("");
                        dateEditTxt.setText("");

                        adapter = new CustomAdapter(MainActivity.this, helper.retrieve());
                        lv.setAdapter(adapter);
                    }
                } else {
                    Toast.makeText(MainActivity.this, "No empty fills", Toast.LENGTH_SHORT).show();
                }
            }
        });
        d.show();
    }}



What I have tried:

Tried to search tutorials but i couldn't really understand and some solution wouldn't work

解决方案

See Fragments | Android Developers[^]. Start by creating a simple test so you can see how it works. You may need to redesign your existing application in order to use this feature.

See also Creating a Navigation Drawer | Android Developers[^].


这篇关于如何将活动转换为导航抽屉的片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆