笔记

本文介绍了Android开发中的实用技巧,包括复制内容、安装apk文件、制作Nine-Patch图片、ListView配置及刷新、Fragment管理、TextView设置、Intent数据传递、临时数据保存、资源加载等关键操作。

1.复制内容

ClipboardManager clip = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clip.setText("复制内容"); // 复制

// 安装apk
private void installApk(File apkFile) {
	Intent intent = new Intent();
	intent.setAction(Intent.ACTION_VIEW);
	intent.addCategory(Intent.CATEGORY_DEFAULT); // default可以不写
	Uri data = Uri.fromFile(apkFile);
	Log.d(TAG, "uri: " + data);
	intent.setDataAndType(data, "application/vnd.android.package-archive");
	startActivityForResult(intent, REQUEST_CODE_INSTALL);
} 

2.在Android sdk 目录下有一个tools 文件夹,在这个文件夹中找到draw9patch.bat 文件,我们就是使用它来制作Nine-Patch图片的,此时的文件名就是message_left.9.png。

3.ListView的android:divider属性,它可以指定ListView分隔线的颜色:android:divider="#0000"。

notifyDataSetChanged(); //刷新ListView中的显示。
setSelection(msgList.size()); //将ListView定位到最后一行。

4.AnotherRightFragment fragment = new AnotherRightFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.right_layout, fragment);
transaction.addToBackStack(null);
transaction.commit();
事务提交之前调用了FragmentTransaction 的addToBackStack()方法,它可以接收一个名字用于描述返回栈的状态,一般传入null 即可。

为了方便碎片和活动之间进行通信,FragmentManager 提供了一个类似于findViewById()的方法,专门用于从布局文件中获取碎片的实例,代码如下所示:
RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
调用FragmentManager 的findFragmentById()方法,可以在活动中得到相应碎片的实例,然后就能轻松地调用碎片里的方法了。
那在碎片中又该怎样调用活动里的方法呢?其实这就更简单了,在每个碎片中都可以通过调用getActivity()方法来得到和当前碎片相关联的活动实例,代码如下所示:
MainActivity activity = (MainActivity) getActivity();

5、TextView中android:ellipsize 用于设定当文本内容超出控件宽度时,文本的缩略方式,end表示在尾部进行缩略。

7、Git下载地址http://msysgit.github.io/

8、Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("extra_data", data);
startActivity(intent);
//
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");

9、Activity中还提供了一个onSaveInstanceState()回调方法,这个方法会保证一定在活动被回收之前调用,因此我们可以通过这个方法来解决活动被回收时临时数据得不到保存的问题。

10、getTaskId():获取当前栈的int值

getClass().getSimpleName():获取类名

11、

代码中imageView.setImageResource(R.drawable.jelly_bean);

ProgressBar中的水平进度条style="?android:attr/progressBarStyleHorizontal"

引用布局:<include layout="@layout/title" />


12、减小png图片大小:

https://tinypng.com/

13、动态改变string

<string name="splash_game">"获取大礼包%1$s个金币,%2$s课钻石,%3$s张卡片 "</string>
%1表示参数位置  
%d   (表示整数)  
%f   (表示浮点数)  
%s   (表示字符串   
//mTvVersion.setText("版本: " + versionName);
//getString(int resId String.xml里定义的资源id, Object... formatArgs 参数列表)
mTvVersion.setText(getString(R.string.splash_version, versionName));
14、assets和raw目录区别
assets:
对文件大小没有限制,但是不会生成资源id
raw:

raw目录下的资源会生成资源id,可以通过R.raw.xx形式访问,文件大小有限制,大概是不能超过1M

读取assets目录下文件

AssetManager assetManager = getAssets();
try {
	InputStream in = assetManager.open("alarm.mp3");
} catch (IOException e) {
	e.printStackTrace();
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值