美文网首页
第一行代码

第一行代码

作者: 我是啵啵 | 来源:发表于2020-02-06 12:43 被阅读0次

    详解build.gradle文件

    (gradle是一种项目构建工具)

    • 外层
      1.jcenter ()代码托管库
      1. depencies 闭包里是一个插件 声明
    • 内层
      插件 编译sdk版本 包名 最低兼容版本 目标版本(做过充分测试) 项目版本号版本名
      是否对项目进行混淆 混淆文件
      依赖关系 本地依赖 远程依赖 jcenter库依赖

    打印工具
    Log是一个类
    Log.v() d i w e

    • tag 写入一般写类名( 对打印信息进行过滤 )
    • msg 具体内容
      运行 :shift+F10
      快捷键 log w d i
      logt tag常量
      过滤器 自定义
      日志的级别控制

    activity

    新建一个活动
    1.活动布局
    2.加载布局
    创建布局的时候会默认根元素
    资源文件添加了以后会在R文件下有个id
    3.注册活动 设置活动为主活动

    • 设置监听器
    • 在活动中使用Toast
      Toast.makeText().show
     Button button=(Button)findViewById(R.id.button_1);
            button.setOnClickListener(
            new View.OnClickListener(){
                  @Override
                   public void onClick(View v){
                  Toast.makeText(MyFirstActivity.this,
    "you click",Toast.LENGTH_SHORT).show();
    

    创建菜单
    menu文件夹 资源文件
    建立布局 文件
    重写 onCreatOptionsMenu()方法
    活动跳转
    intent显式和隐式跳转
    打电话 用浏览器
    活动之间传递数据
    ctrl+o 重写
    看一下对话主题的错误
    控件的使用
    布局

     AlertDialog.Builder dialog = new AlertDialog.Builder(HelloWorldActivity.this);
                    dialog.setTitle("biaoti");
                    dialog.setMessage("xingxi");
                    dialog.setCancelable(false);
    
                    dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
    
                        }
                    });
                    dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
    
                        }
                    });
                    dialog.show();
    
                }
            });
    
    20180831114828.png 20180831114841.png

    listview

    package com.example.listviewtest;
    
    public class Fruit {
    
        private String name;
    
        private int imageId;
    
        public Fruit(String name, int imageId) {
            this.name = name;
            this.imageId = imageId;
        }
    
        public String getName() {
            return name;
        }
    
        public int getImageId() {
            return imageId;
        }
    
    }
    
    package com.example.listviewtest;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import java.util.List;
    
    public class FruitAdapter extends ArrayAdapter<Fruit> {
    
        private int resourceId;
    
        public FruitAdapter(Context context, int textViewResourceId,
                            List<Fruit> objects) {
            super(context, textViewResourceId, objects);
            resourceId = textViewResourceId;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Fruit fruit = getItem(position); // 获取当前项的Fruit实例
            View view;
            ViewHolder viewHolder;
            if (convertView == null) {
                view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
                viewHolder = new ViewHolder();
                viewHolder.fruitImage = (ImageView) view.findViewById (R.id.fruit_image);
                viewHolder.fruitName = (TextView) view.findViewById (R.id.fruit_name);
                view.setTag(viewHolder); // 将ViewHolder存储在View中
            } else {
                view = convertView;
                viewHolder = (ViewHolder) view.getTag(); // 重新获取ViewHolder
            }
            viewHolder.fruitImage.setImageResource(fruit.getImageId());
            viewHolder.fruitName.setText(fruit.getName());
            return view;
        }
    
        class ViewHolder {
    
            ImageView fruitImage;
    
            TextView fruitName;
    
        }
    
    }
    
    package com.example.listviewtest;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private List<Fruit> fruitList = new ArrayList<Fruit>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initFruits(); // 初始化水果数据
            FruitAdapter adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitList);
            ListView listView = (ListView) findViewById(R.id.list_view);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    Fruit fruit = fruitList.get(position);
                    Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show();
                }
            });
        }
    
        private void initFruits() {
            for (int i = 0; i < 2; i++) {
                Fruit apple = new Fruit("Apple", R.drawable.apple_pic);
                fruitList.add(apple);
                Fruit banana = new Fruit("Banana", R.drawable.banana_pic);
                fruitList.add(banana);
                Fruit orange = new Fruit("Orange", R.drawable.orange_pic);
                fruitList.add(orange);
                Fruit watermelon = new Fruit("Watermelon", R.drawable.watermelon_pic);
                fruitList.add(watermelon);
                Fruit pear = new Fruit("Pear", R.drawable.pear_pic);
                fruitList.add(pear);
                Fruit grape = new Fruit("Grape", R.drawable.grape_pic);
                fruitList.add(grape);
                Fruit pineapple = new Fruit("Pineapple", R.drawable.pineapple_pic);
                fruitList.add(pineapple);
                Fruit strawberry = new Fruit("Strawberry", R.drawable.strawberry_pic);
                fruitList.add(strawberry);
                Fruit cherry = new Fruit("Cherry", R.drawable.cherry_pic);
                fruitList.add(cherry);
                Fruit mango = new Fruit("Mango", R.drawable.mango_pic);
                fruitList.add(mango);
            }
        }
    
    }
    

    recyclerview

    package com.example.myrecyclerview;
    
    public class Fruit {
    
            private String name;
    
            private int imageId;
    
            public Fruit(String name, int imageId) {
                this.name = name;
                this.imageId = imageId;
            }
    
            public String getName() {
                return name;
            }
    
            public int getImageId() {
                return imageId;
            }
    
        }
    
    
    
    package com.example.myrecyclerview;
    
    import android.support.annotation.NonNull;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import java.util.List;
    
    
    public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
        private List<Fruit> mfruitList;
    
        static class ViewHolder extends RecyclerView.ViewHolder {//内部类
            ImageView fruitImage;
            TextView fruitName;
    
            //
            public ViewHolder(View view) {//子项最外层布局
                super(view);//实例化布局
                fruitImage = (ImageView) view.findViewById(R.id.fruit_image);
                fruitName = (TextView) view.findViewById(R.id.fruit_name);
    
            }
        }
    
        public FruitAdapter(List<Fruit> fruitList) {//传入数据源 赋值给全局变量
            mfruitList = fruitList;
        }
    
        //继承3个方法的重写
        @NonNull//创建方法实例化Viewholder 加载子项布局
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from((parent.getContext())).inflate(R.layout.fruit_item, parent, false);
            ViewHolder holder = new ViewHolder(view);
            return holder;
        }
       // 子项赋值
        @Override
        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
            Fruit fruit = mfruitList.get(position);
            holder.fruitImage.setImageResource(fruit.getImageId());
            holder.fruitName.setText(fruit.getName());
        }
    
        @Override
        public int getItemCount() {
            return mfruitList.size();
        }
    }
    
    package com.example.myrecyclerview;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.util.Log;
    import android.widget.ListView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.example.*;
    
    public class MainActivity extends AppCompatActivity {
        private static final String TAG = "MainActivity";
        private List<Fruit> fruitList = new ArrayList<>();
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initFruits();
            RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
            //指定布局方式
            LinearLayoutManager layoutManager = new LinearLayoutManager(this);
            layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
            recyclerView.setLayoutManager(layoutManager);
            FruitAdapter adapter = new FruitAdapter(fruitList);
            recyclerView.setAdapter(adapter);
            Log.i(TAG, "onCreate: " );
    
        }
    
        private void initFruits() {
            for (int i = 0; i < 2; i++) {
                Fruit apple = new Fruit("Apple", R.drawable.apple_pic);
                fruitList.add(apple);
                Fruit banana = new Fruit("Banana", R.drawable.banana_pic);
                fruitList.add(banana);
                Fruit orange = new Fruit("Orange", R.drawable.orange_pic);
                fruitList.add(orange);
                Fruit watermelon = new Fruit("Watermelon", R.drawable.watermelon_pic);
                fruitList.add(watermelon);
                Fruit pear = new Fruit("Pear", R.drawable.pear_pic);
                fruitList.add(pear);
                Fruit grape = new Fruit("Grape", R.drawable.grape_pic);
                fruitList.add(grape);
                Fruit pineapple = new Fruit("Pineapple", R.drawable.pineapple_pic);
                fruitList.add(pineapple);
                Fruit strawberry = new Fruit("Strawberry", R.drawable.strawberry_pic);
                fruitList.add(strawberry);
                Fruit cherry = new Fruit("Strawberry", R.drawable.cherry_pic);
                fruitList.add(cherry);
                Fruit mango = new Fruit("Mango", R.drawable.mango_pic);
                fruitList.add(mango);
            }
        }
    }
    

    UI最佳实践

    package com.example.uibestpractice;
    
    public class Msg {
    
        public static final int TYPE_RECEIVED = 0;
    
        public static final int TYPE_SENT = 1;
    
        private String content;
    
        private int type;
    
        public Msg(String content, int type) {
            this.content = content;
            this.type = type;
        }
    
        public String getContent() {
            return content;
        }
    
        public int getType() {
            return type;
        }
    
    }
    
    package com.example.uibestpractice;
    
    import android.app.Activity;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    import java.util.List;
    
    public class MsgAdapter extends RecyclerView.Adapter<MsgAdapter.ViewHolder> {
    
        private List<Msg> mMsgList;
    
        static class ViewHolder extends RecyclerView.ViewHolder {
    
            LinearLayout leftLayout;
    
            LinearLayout rightLayout;
    
            TextView leftMsg;
    
            TextView rightMsg;
    
            public ViewHolder(View view) {
                super(view);
                leftLayout = (LinearLayout) view.findViewById(R.id.left_layout);
                rightLayout = (LinearLayout) view.findViewById(R.id.right_layout);
                leftMsg = (TextView) view.findViewById(R.id.left_msg);
                rightMsg = (TextView) view.findViewById(R.id.right_msg);
            }
        }
    
        public MsgAdapter(List<Msg> msgList) {
            mMsgList = msgList;
        }
    
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.msg_item, parent, false);
            return new ViewHolder(view);
        }
    
        @Override
        public void onBindViewHolder(ViewHolder holder, int position) {
            Msg msg = mMsgList.get(position);
            if (msg.getType() == Msg.TYPE_RECEIVED) {
                // 如果是收到的消息,则显示左边的消息布局,将右边的消息布局隐藏
                holder.leftLayout.setVisibility(View.VISIBLE);
                holder.rightLayout.setVisibility(View.GONE);
                holder.leftMsg.setText(msg.getContent());
            } else if (msg.getType() == Msg.TYPE_SENT) {
                // 如果是发出的消息,则显示右边的消息布局,将左边的消息布局隐藏
                holder.rightLayout.setVisibility(View.VISIBLE);
                holder.leftLayout.setVisibility(View.GONE);
                holder.rightMsg.setText(msg.getContent());
            }
        }
    
        @Override
        public int getItemCount() {
            return mMsgList.size();
        }
    
    }
    
    package com.example.uibestpractice;
    
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        private List<Msg> msgList = new ArrayList<Msg>();
    
        private EditText inputText;
    
        private Button send;
    
        private RecyclerView msgRecyclerView;
    
        private MsgAdapter adapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initMsgs(); // 初始化消息数据
            inputText = (EditText) findViewById(R.id.input_text);
            send = (Button) findViewById(R.id.send);
            msgRecyclerView = (RecyclerView) findViewById(R.id.msg_recycler_view);
            LinearLayoutManager layoutManager = new LinearLayoutManager(this);
            msgRecyclerView.setLayoutManager(layoutManager);
            adapter = new MsgAdapter(msgList);
            msgRecyclerView.setAdapter(adapter);
            send.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String content = inputText.getText().toString();
                    if (!"".equals(content)) {
                        Msg msg = new Msg(content, Msg.TYPE_SENT);
                        msgList.add(msg);
                        adapter.notifyItemInserted(msgList.size() - 1); // 当有新消息时,刷新ListView中的显示
                        msgRecyclerView.scrollToPosition(msgList.size() - 1); // 将ListView定位到最后一行
                        inputText.setText(""); // 清空输入框中的内容
                    }
                }
            });
        }
    
        private void initMsgs() {
            Msg msg1 = new Msg("Hello guy.", Msg.TYPE_RECEIVED);
            msgList.add(msg1);
            Msg msg2 = new Msg("Hello. Who is that?", Msg.TYPE_SENT);
            msgList.add(msg2);
            Msg msg3 = new Msg("This is Tom. Nice talking to you. ", Msg.TYPE_RECEIVED);
            msgList.add(msg3);
        }
    
    }
    
    • 聊天界面

    fragment

    package com.example.fragmenttest;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class LeftFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.left_fragment, container, false);
            return view;
        }
    
    }
    
    package com.example.fragmenttest;
    
    import android.content.Context;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class RightFragment extends Fragment {
    
        public static final String TAG = "RightFragment";
    
        @Override
        public void onAttach(Context context) {
            super.onAttach(context);
            Log.d(TAG, "onAttach");
        }
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Log.d(TAG, "onCreate");
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            Log.d(TAG, "onCreateView");
            View view = inflater.inflate(R.layout.right_fragment, container, false);
            return view;
        }
    
        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            Log.d(TAG, "onActivityCreated");
        }
    
        @Override
        public void onStart() {
            super.onStart();
            Log.d(TAG, "onStart");
        }
    
        @Override
        public void onResume() {
            super.onResume();
            Log.d(TAG, "onResume");
        }
    
        @Override
        public void onPause() {
            super.onPause();
            Log.d(TAG, "onPause");
        }
    
        @Override
        public void onStop() {
            super.onStop();
            Log.d(TAG, "onStop");
        }
    
        @Override
        public void onDestroyView() {
            super.onDestroyView();
            Log.d(TAG, "onDestroyView");
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            Log.d(TAG, "onDestroy");
        }
    
        @Override
        public void onDetach() {
            super.onDetach();
            Log.d(TAG, "onDetach");
        }
    
    }
    
    package com.example.fragmenttest;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class AnotherRightFragment extends Fragment {
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.another_right_fragment, container, false);
            return view;
        }
    
    }
    
    package com.example.fragmenttest;
    
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(this);
    //        replaceFragment(new RightFragment());
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.button:
    //                replaceFragment(new AnotherRightFragment());
                    break;
                default:
                    break;
            }
        }
    
    //    private void replaceFragment(Fragment fragment) {
    //        FragmentManager fragmentManager = getSupportFragmentManager();
    //        FragmentTransaction transaction = fragmentManager.beginTransaction();
    //        transaction.replace(R.id.right_layout, fragment);
    //        transaction.addToBackStack(null);
    //        transaction.commit();
    //    }
    
    }
    
    • 动态添加碎片
      数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
    • 将碎片添加到返回栈
    • 碎片和活动之间的通信
    • 限定符

    coolweather

    有个xml文件放错
    push 不上

    相关文章

      网友评论

          本文标题:第一行代码

          本文链接:https://www.haomeiwen.com/subject/uvqbiftx.html