Android基础知识学习记录

Android基础知识学习记录

Android开发环境部署

基础知识

基本控件使用

如何在Java中使用控件对象

  1. 实例化控件类型的对象

    private TextView tv;

  2. 初始化对象

    tv=(TextView)findViewById(R.id.tv);

  3. 使用控件

    tv.setText(“密码”);

常用控件的属性

  • RadioButton&CheckBox
    • android:checked=”” true为选中,false为未选中
    • 定义在RadioGroup中的RadioButton为单选
    • 点击事件sexgroup.setOnCheckedChangeListener()
  • TextView
    • android:gravity=”center” 显示字体居中
    • android:textSize=”32sp”
    • android:textStyle=”bold”
    • android:padding=”3dip” 距离
  • 其他
    • v.setAlpha(0.5f) 设置控件的透明度(0为不显示,1为显示)

控件的点击事件

  • Button点击事件
  • 匿名内部类格式
  • 需要导入方法和包
Button.setOnClickListener(new OnClickListener() {           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                tv1.setText("密码");
                imgbt.setImageResource(R.drawable.nuroto);
            }
        });
  • Button长按事件
  • return true:长按事件和点击事件不冲突
 bt2.setOnLongClickListener(new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                // TODO Auto-generated method stub
                bt2.setText("长按结束");
                return true;
            }
        });

Spinner的使用

  • 定义Spinner
  • 在Java文件中初始化Spinner
  • 新建一个List
  • 定义一个新的适配器
  • 将适配器和控件绑定
  • 添加点击事件spinner1.setOnItemSelectedListener()
spinner1=(Spinner)findViewById(R.id.spinner1);
final List<String> list=new ArrayList<String>();
//可以在方法中找到列表的值
list.add("shanghai");
list.add("shenyang");
list.add("shandong");
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
//定义适配器(类,适配器格式,所使用的list)    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//下拉格式
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                // TODO Auto-generated method stub
                history=""+list.get(arg2);
            }
            //没有选择的时候
    public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub

            }
        });

ListView的使用

  • 定义一个ListView控件
  • 初始化控件对象
  • 定义一个适配器的list
    List<String> list=new ArrayList<String>()

  • 定义一个适配器

  • 定义一个点击事件listview.setOnItemClickListener()
点击事件参数
arg0 适配器控件
arg1 适配器内部的控件
arg2 适配器内部的控件的子项位置
arg3 子项的行号
  lv1=(ListView)findViewById(R.id.listView1);
        final List<String> llist=new ArrayList<String>();
        llist.add("first");
        llist.add("second");
        llist.add("third");
        llist.add("forth");
        llist.add("fifth");
        llist.add("sixth");
        ArrayAdapter<String>adapter2=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,llist);
        lv1.setAdapter(adapter2);
        //区别按钮的Onclick事件
        lv1.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                    long arg3) {
                // TODO Auto-generated method stub

tv1.setText(String.valueOf(arg2)+String.valueOf(arg3)+llist.get(arg2));

            }
        });

常用的布局

布局可以相互嵌套

线性布局LinearLayout

  • android:orientation=”horizontal/vertical”

相对布局RelativeLayout

  • android:layout_toLeftOf=”@+id/relativepositonid”
  • android:layout_above=”@+id/relativepositonid”
  • android:layout_aligntop=”@+id/relativepositonid”
  • android:layout_alignParentLeft=”true”
  • android:layout_marginLeft=”10dip”
  • android:paddingLeft=”10dip”

表格布局TableLayout

如何实现一行的布局按给定的比例布局
<TableRow 
        android:id="@+id/tablerow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <Button 
            android:id="@+id/bt1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            />
                <Button 
            android:id="@+id/bt2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />
    </TableRow>

切换Activity

  1. 新建一个其他的Activity
  2. 在AndroidManifest.xml中注册

    1. 以主Activity注册(安装时会出现两个图标)
    2. 不以主Activity注册

      <activity
          android:name=".MainActivity"
          android:label="@string/app_name" >
         /* <intent-filter>
              <action android:name="android.intent.action.MAIN" />
      
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>*/
      </activity>
  3. 利用intent机制跳转窗口

Intent intent=new Intent(MainActivity.this,ToStartActivity.class);
startActivity(intent);

如何在两个Activity之间传递数据

方法一(数据较少时,且类型为String):intent.putExtra(“flag”,”log”);
方法二(数据较多时,且数据类型不单一):
1. 初始化一个Bundle对象
2. 插入数据
3. 将Bundle与intent关联

intent intent=new Intent(MainActivity.this,ResultActivity.class);
Bundle bundle = new Bundle();           bundle.putString("name",String.valueOf(item1.getText()));
bundle.putString("history", String.valueOf(history));
intent.putExtras(bundle);   //关联intent
startActivityForResult(intent,RESULT_CODE);

如何获取数据

  1. Intent intent = this.getIntent();
  2. var str=intent.getStringExtra(“name”);
  3. setReslut(Result,Intent);

如何在主Activity中根据返回值做出响应

  • requestCode 确定是哪个intent
  • resultCode 由setResut确定的返回值
  • 类型为protected void
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
             if (requestCode == 10) {
                      if (resultCode ==6) {
                       Toast.makeText(MainActivity.this, "这是从ReceiveActivity类回来的响应", Toast.LENGTH_LONG).show();
                     }
                      else{Toast.makeText(MainActivity.this, "不是", Toast.LENGTH_LONG).show();}
                }
}

其他

  • xmlns是XML Namespaces的缩写,中文名称是XML(标准通用标记语言的子集)命名空间。
  • dip: device independent pixels
  • sp: scaled pixels(放大像素). 主要用于字体显示best for textsize
  • int–>String String.valueOf
  • 在布局文件中所使用的字符串都需要存在String.xml中
    • 其中app_name为apk安装后所显示的名字
  • static String history,sex; 定义一个类的全局变量
  • 退出程序System.exit(0);
  • Activity.finish():当动作完成时退出Activity
  • Toast.LENGTH_LONG(3.5秒)和Toast.LENGTH_SHORT(2秒)
  • 连接不上手机设备时,在dos中更改路径到platform-tools
    • adb.exe kill-server
    • adb.exe start-server
  • 常用快捷键
    • shift+ctrl+o 导入包
    • Ctrl+mouseleft 跳转到所在位置
  • onc导入onclick()的方法
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值