Android

1.LayoutInflater

动态加载资源布局,加载自定义组件等

/*获取该组件*/
View view = LayoutInflater.from(MainActivity.this)
.inflate(R.layout.activity_my_grid_layout,null);
/*获取主布局文件*/
 LinearLayout lin=  findViewById(R.id.main_layout);
/*设置动态加载的组件垂直间距为30dp*/

LinearLayout.LayoutParams lp = 
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0,30,0,0);
view.setLayoutParams(lp);

/*添加组件*/
lin.addView(view);

2.Notification

/*通过NotificationCampat.Builder创建通知,创建完成后通过该类下的builder方法实例化为notification对象*/
NotificationCompat.Builder notification = new NotificationCompat.Builder(MainActivity.this,"default")
                        .setSmallIcon(R.drawable.notification)
                        .setContentTitle("test")
                        .setContentText("简单的通知");
/*获取通知管理器对象,需从系统的服务中获取*/
 NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
/*通过该管理器发送通知,参数为Notification对象*/
 notificationManager.notify(0,notification.build());

3.PendingIntent

用于远程服务通信、通知、闹铃等,须在下拉状态条下出发,单机Notification跳转并启动到某个Activity中

//构建一个intent
Intent resultIntent =new Intent(MainActivity.this,ResaultActivity.class);

//封装intent
PendingIntent resultPendingIntent = PendingIntent.getActivity(MainActivity.this,0,resultIntent,PendingIntent.FLAG_UPDATE_CURRENT)


//notification通过NotificationCampat.Builder创建
//Supply a PendingIntent to be sent when the notification is clicked.
notification.setConentIntent(resultPendingIntent)

Intent

1.putExtra方式

//发送
intent.putExtra("key","value")
startActivity(intent);
//接收
getIntent.getStringExtra("key")
//传递对象数组
//把list强制类型转换成Serializable类型
intent.putExtra("objectList", (Serializable) list);
startActivity(intent);
//接收

List objList = (List) getIntent().getSerializableExtra(
"objectList");
 
 

2.bundle传递简单值

//发送
Bundle bundle = new Bundle();
bundle.putString("key1","value");
bundle.putInt("key2",11);
intent.putExtras(bundle);
startActivity(intent);
//接收
Bundle bundle= getIntent().getExtras();
String name = bundle.getString("key1")
Int  n= bundle.getInt("key2")

3.主窗体与子窗体双向传递数据

向子窗体传递

Intent mIntent= new Intent(MainActivity.this,OtherActivity.class);
mIntent.putExtra("key1","value");
startActivityForResult(mIntnet,100);

子窗体返回数据

Intent ointent= new Intent();
ointent.putExtra("key2","result");
//返回数据
setResult(101,intent);
//结束当前Activity生命,返回主窗体
finish();

主窗体重写onActivityResult方法接受返回数据

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==100&&resultCode==101){
    //.........
       data.getStringExtra("result")
     }
}

4.startActivity与startActivityForResult的区别

startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。

startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,

而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。

要注意,如果在startActivityForResult跳转到的Activity里面设置setResult,结果并不会马上返回给parent的Activity,只有当前Activity被finish,结果才会被发送给parent的onActivityResult去处理

5.隐式匹配

首先要匹配Intent的几项值:Action,Category(一般不用设置),Data/Type,Component(即为Test.class,设置以后就成了显示匹配)
例:
打开网页

Uri uri= Uri.parse("http://www.baidu.com");

 Intent intent = new Intent();
  intent.setAction(Intent.ACTION_VIEW);
  intent.setData(uri);
  //构造方法定义
  // Intent intent = new Intent(Intent.ACTION_VIEW,uri);

  startActivity(intent);

拨打电话

Uri uri = new Uri.prase("tel:10086");
Intent intent = new Intent(Intent.ACTION_DIAL,uri)
startActivity(intent);

ListView

设置拖动背景色

  android:cacheColorHint

设置item间距

  android:dividerHeight

设置item之间的背景或颜色

  android:divide

设置阴影,值为none 时无

  android:fadingEdge

设置是否显示滚动条,值为horizontal|verticalhi显示滚动条,并会自动显示和隐藏

  android:scrollbars="horizontal|none"

设置快速滚动效果,在快速滚动时会出现一个小方块的快速滚动效果,自动隐藏和显示

  android:fastScrollEnabled="true"

设置scrollbar样式

  android:scrollbarStyle="outsideInset"
  • outsideInset:在View边缘增加了View的padding
  • outsideOverlay:显示在视图边缘,不增加view的padding,该scrollbar将被半透明覆盖
  • insideInset:显示在padding区域中,增加了控件的padding区域,不会和视图内容重叠/
  • insideOverlay:显示在区域中,不增加,以半透明的形式存在

你可能感兴趣的:(Android)