gpt4 book ai didi

Android开发_记事本(1)

转载 作者:我是一只小鸟 更新时间:2023-04-10 22:31:27 31 4
gpt4 key购买 nike

一些知识

Textview

TextView中有下述几个属性

  • id: 为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!
  • layout_width: 组件的宽度,一般写: wrap_content 或者 match_parent(fill_parent) ,前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小,比如我这里为了显示效果,设置成了200dp。
  • layout_height: 组件的高度,内容同上。
  • gravity: 设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等。
  • text: 设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的,这里为了方便我直接就写到""里,不建议这样写!!!
  • textColor: 设置字体颜色,同上,通过colors.xml资源来引用,别直接这样写!
  • textStyle: 设置字体风格,三个可选值: normal (无效果), bold (加粗), italic (斜体)
  • textSize: 字体大小,单位一般是用sp!
  • background: 控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!

startActivityForResult

大致可以理解为获取Activity的结果 。

Intent

intent相当于一个信道,putExtra相当于向里面传送一个名为参数一,内容为参数二的信息,接收方通过参数一相同的名称来接受参数二内容 。

  • startActivity (Intent)/ startActivityForResult (Intent):来启动一个Activity
  • startService (Intent)/ bindService (Intent):来启动一个Service
  • sendBroadcast :发送广播到指定BroadcastReceiver

.显式Intent使用示例:

这个用得很多,直接就上例子了:

例子1: 点击按钮返回Home界面: 运行效果图:

img

核心代码:

                        
                          Intent it = new Intent();
it.setAction(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
startActivity(it);

                        
                      

例子2: 点击按钮打开百度页面: 运行效果图:

img

核心代码:

                        
                          Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setData(Uri.parse("http://www.baidu.com"));
startActivity(it);

                        
                      

在记事本中应用

在 编辑页面 当点击返回按钮的时候跳转到 主页面 。

EditActivity:

                        
                          public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_HOME){
            return true;
        }
        else if(keyCode == KeyEvent.KEYCODE_BACK){
            Intent intent = new Intent();//只用来传输信息,不用来跳转
            intent.putExtra("input",et.getText().toString());
            setResult(RESULT_OK,intent);
            finish();
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

                        
                      

MainActivity中:

                        
                          public void onClick(View view) {
                //测试btn
                //Log.d(TAG,"onClick:click");
                Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
                //启动活动并获取结果
                startActivityForResult(intent,0);                                                         //启动参数这样的一个跳转


            }

                        
                      

开发过程

实现点击按钮界面的跳转

按钮:

img

跳转

先初始化按钮 。

                        
                          super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //floatingbutton初始化
        btn = ( FloatingActionButton)findViewById(R.id.fab);
        tv = findViewById(R.id.tv);


                        
                      

之后用一个setOnClickListener函数实现跳转 。

                        
                          btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //测试btn
                //Log.d(TAG,"onClick:click");
                Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
                //启动活动并获取结果
                startActivityForResult(intent,0);                                                         //启动参数这样的一个跳转
            }
        });

                        
                      

接受Edit输入的结果

MainActivity中:

                        
                          //下面接受startActivityForResult结果
    @Override
    //通过上面的Intent跳转到Edit,并通过下面的函数来对Edit的内容进行接收
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
        super.onActivityResult(requestCode,resultCode,data);
        String edit = data.getStringExtra("input");
        //Log.d(TAG,edit);
        tv.setText(edit);       //输出输入的内容到Main屏幕中
    }

                        
                      

EditActivity中:

                        
                           //可以背一下下面格式
    //功能:传回一个“input”的值来对应前面的getStringExtra
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_HOME){
            return true;
        }
        else if(keyCode == KeyEvent.KEYCODE_BACK){
            Intent intent = new Intent();//只用来传输信息,不用来跳转
            intent.putExtra("input",et.getText().toString());
            setResult(RESULT_OK,intent);
            finish();
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

                        
                      

此时的完整代码:

MainActivity:

                        
                          package com.example.note;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity {

    final String TAG = "tag";
    FloatingActionButton btn;   //后面再初始化
    TextView tv;
    //笔记本的核心:ListView
    ListView lv;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //floatingbutton初始化
        btn = ( FloatingActionButton)findViewById(R.id.fab);
        tv = findViewById(R.id.tv);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //测试btn
                //Log.d(TAG,"onClick:click");
                Intent intent = new Intent(MainActivity.this,EditActivity.class);//从参数一跳转到参数二
                //启动活动并获取结果
                startActivityForResult(intent,0);                                                         //启动参数这样的一个跳转


            }
        });

    }

    //下面接受startActivityForResult结果
    @Override
    //通过上面的Intent跳转到Edit,并通过下面的函数来对Edit的内容进行接收
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
        super.onActivityResult(requestCode,resultCode,data);
        String edit = data.getStringExtra("input");
        //Log.d(TAG,edit);
        tv.setText(edit);       //输出输入的内容到屏幕中
    }

}

                        
                      

EditActivity:

                        
                          package com.example.note;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.EditText;
import android.content.Intent;
import java.security.Key;

public class EditActivity extends AppCompatActivity{

    //实例化一个et
    EditText et;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.edit_layout);
        //定位输入好的内容
        et=findViewById(R.id.et);
    }
    //可以背一下下面格式
    //功能:传回一个“input”的值来对应前面的getStringExtra
    public boolean onKeyDown(int keyCode, KeyEvent event){
        if(keyCode == KeyEvent.KEYCODE_HOME){
            return true;
        }
        else if(keyCode == KeyEvent.KEYCODE_BACK){
            Intent intent = new Intent();//只用来传输信息,不用来跳转
            intent.putExtra("input",et.getText().toString());
            setResult(RESULT_OK,intent);
            finish();
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

}


                        
                      

效果

点击按钮会跳转到edit界面,输入内容后按返回键会将内容显示在MainActivity界面中 。

img

img

最后此篇关于Android开发_记事本(1)的文章就讲到这里了,如果你想了解更多关于Android开发_记事本(1)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com