美文网首页安卓开发笔记
谷歌官方安卓开发学习笔记(三)

谷歌官方安卓开发学习笔记(三)

作者: 奥之 | 来源:发表于2018-02-17 03:01 被阅读0次

    开始为第一个用户界面添加一个小功能
    (注:android stdio的版本为3.0.1,不同版本可能存在一定的差异,学习时建议在谷歌官网下载最新版)

    给按钮添加功能

    • 打开 app > java > com.example.myfirstapp(你当初创建的文件名) > MainActivity 添加几行代码,现在暂时不了解这些代码没有关系,可以理解为给程序添加功能所必要的条件。

    java版本

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        /** Called when the user taps the Send button */
        public void sendMessage(View view) {
            // Do something in response to button
        }
    }
    
    

    KOTLIN(2017年开始支持kotlin)

    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
        }
    
        /** Called when the user taps the Send button */
        fun sendMessage(view: View) {
            // Do something in response to button
        }
    }
    
    

    添加了这些代码后,你可能会看到如图所示的许多小错误,下面我们来修复他们


    image.png

    选择错误的地方,然后按下快捷键option+enter 会出现快捷修复选项,我们选择import class


    image.png
    • 返回 activity_main.xml文件,我们添加button和这个sendmessage之间的关联。
      选择button,然后在属性页面中搜索oncilck(意思是当你触碰这个按钮时会触发的功能)


      image.png

      我们选择sendmessage,也就是我们刚刚在代码中添加的那一行功能。
      现在只要我们点击这个按钮,系统就会响应sendmessage这一几行代码。

    建立一个intend

    intend通常用于两个活动之间提供运行时绑定的对象

    • 在MainActivity,添加EXTRA_MESSAGE和 sendMessage代码(目前只提供java)
    public class MainActivity extends AppCompatActivity {
        public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
        /** Called when the user taps the Send button */
        public void sendMessage(View view) {
            Intent intent = new Intent(this, DisplayMessageActivity.class);
            EditText editText = (EditText) findViewById(R.id.editText);
            String message = editText.getText().toString();
            intent.putExtra(EXTRA_MESSAGE, message);
            startActivity(intent);
        }
    }
    
    

    添加完后,你的代码应该是这个样式的
    (仍有部分错误:DisplayMessageActivity)


    image.png

    不过没有关系,现在我们就来解决它

    在project窗口中,右键单击app 文件夹选择New > Activity > Empty Activity.

    更改这个新的activity的名字为displaymessageactivity, 点finish

    imag.png

    添加文字反馈

    我们创建好了这个新的空白的activity后,打开app > res > layout > activity_display_message.xml.

    像之前学过的一样,这次我们添加一个textview(还记得第一节课的helloworld吗?),唯一的不同是记得打开图上红框的按钮


    image.png

    可以在属性面板给他添加你喜欢颜色以及大小


    image.png

    显示文字

    打开DisplayMessageActivity文件,添加如下代码

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message);
        
        // Get the Intent that started this activity and extract the string
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    
        // Capture the layout's TextView and set the string as its text
        TextView textView = findViewById(R.id.textView);
        textView.setText(message);
    }
    
    

    如果代码正确,应该显示为下图(有不对的地方请用option+enter自动修复)


    image.png

    添加导航栏

    部分安卓手机是没有返回按钮的,所以我们要给他添加一个导航栏

    打开app > manifests > AndroidManifest.xml

    添加如下代码

    <activity android:name=".DisplayMessageActivity"
              android:parentActivityName=".MainActivity">
        <!-- The meta-data tag is required if you support API level 15 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    

    好了,到这里,你的第一个有着完整功能的app就建好了,插上你的安卓手机,安装你亲手写的app试试吧,他的效果应该就像下图一样

    image.png

    相关文章

      网友评论

        本文标题:谷歌官方安卓开发学习笔记(三)

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