1、 android与js代码交互:
①.在android中调用js方法:
android中调用js方法为WebView.loadUrl(“javascript:function()”);但是这样调用不能去得js方法的返回值。
②.在js中调用android的方法:
在android中:WebView.addjavascriptinterface(new Object(){
//这里写方法
String username;
Public void setName(final String name){
username=name;
}
},”demo”);//demo为这个接口的名字,可以任意命名
在js中:window.demo.setName(“zhangshan”);//这里调用时接口名称必须和android端声明的名字一致。
③.在android中取得js方法的返回值:
直接用Webview.loadUrl(“javascript:function()”);无法获得js中的返回值,所以要取得js方法的返回值,先在andoird端声明变量,然后在js方法中调用android方法给这个变量赋值,这样当android调用这个js时,js就给android端的变量赋值了,这个变量可以是js方法返回值。
2、 android存取简单值的方法SharedPreferences:
存取简单的值,比如说一个用户名和密码,可以用SharedPreference实现。
存入值步骤:
首先获得Context对象:Context context=ActivityName.this;
获得SharedPreferences对象:
SharedPreferences pref=context.getSharedPreferences(“prefname”, MODE_PRIVATE);
获得Editor对象:Editor editor=prefname.edit();
存入键值对:editor.putString(“name”,”zhangsan”);
提交:editor.commit();
取得值步骤:
Context context=ActivityName.this;
SharedPreferences pref=context.getSharedPreferences(“prefname”, MODE_PRIVATE);
String username=pref.getString(“name”,””);
3.Activity之间的跳转和广播实现结束别的Activity功能:
Activity跳转到别的Activity使用intent实现:
Intent intent=new Intent(Activity.this,otherActivity.class);
startActivity(intent);
如果传递参数跳转:
Bundle bundle=new Bundle();
bundle.putString(“name”,”zhangshan”);
bundle.putInt(“count”,5);
Intent intent=new Intent(Activity.this,otherActivity.class);
Intent.putExtras(bundle);
startActivity(intent);
Activity.this.finish();//结束次Activity
如果在AActivity中随意关闭BActivity:
在AActivity中注册广播:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {//定义广播,用以在AccountActivity中调用来动态结束ms02Activity
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
finish();
}
};

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.MAIN");
registerReceiver(broadcastReceiver, intentFilter);
}
在BActivity中调用:
sendBroadcast(new Intent(“android.intent.action.MAIN”));
4.android中sqlite数据库的使用:
首先定义DbHelper类:用于创建表:
public class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE ms_account (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , account VARCHAR, password VARCHAR)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在应用sqlite的Activity中:
// SQLiteDatabase对象
SQLiteDatabase db;
// 数据库名
public String db_name = "ms02.sqlite";
// 表名
public String table_name = "ms_account";
// 辅助类名
final DbHelper helper = new DbHelper(this, db_name, null, 1);
db=helper.getWritableDatabase();
对数据库的写入:
SQLiteDatabase db;
ContentValues cv=new ContentValues();
cv.put(“account”,”zhangshan”);
db.insert(tablename,””,cv);
删除数据:
SQLiteDatabase db;
Db.delete(“表名”,“字段=?”,字段值,null);
查询数据:
SQLiteDatabase db;
Cursor c=db.query(“表名”,new String[]{“字段”,“字段1”},“字段=?”,new String[]{字段的值},null,null,null);
While(c.movetonext()){
String s=c.getString(c.getcolumnindex(“字段1”));
}
更新数据:
ContentValues cv=new ContentValues();
cv.put(“字段”,“字段值”);
cv.put(“字段1”,“字段值“);
db.update(“表名”,cv,”字段=“,”字段值”,null)
5.listview中item用textview实现:
在layout中添加listitem.xml文件:文件内容为添加一个checkbox和一个textview。
在Activity中自定义适配器继承basaAdapte:
// 自定义ListView适配器
class MyListAdapter extends BaseAdapter {
List<Boolean> mChecked;
ArrayList arraylist;
HashMap<Integer, View> map = new HashMap<Integer, View>();

public MyListAdapter(ArrayList list) {
arraylist = new ArrayList();
arraylist = list;

mChecked = new ArrayList<Boolean>();
for (int i = 0; i < list.size(); i++) {
mChecked.add(false);
}
}

@Override
public int getCount() {
return arraylist.size();
}

@Override
public Object getItem(int position) {
return arraylist.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ViewHolder holder = null;

if (map.get(position) == null) {
// Log.e("MainActivity", "position1 = " + position);

LayoutInflater mInflater = (LayoutInflater) getApplicationContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = mInflater.inflate(R.layout.listitem, null);
holder = new ViewHolder();
holder.selected = (CheckBox) view
.findViewById(R.id.list_select);
holder.name = (TextView) view.findViewById(R.id.list_name);

final int p = position;
map.put(position, view);
holder.selected.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
mChecked.set(p, cb.isChecked());
}
});
view.setTag(holder);
} else {
Log.e("MainActivity", "position2 = " + position);
view = map.get(position);
holder = (ViewHolder) view.getTag();
}

holder.selected.setChecked(mChecked.get(position));
holder.name.setText(arraylist.get(position).toString());

return view;
}

}

static class ViewHolder {
CheckBox selected;
TextView name;

}
6.动态添加布局文件:
声明layoutinflater类:
LayoutInflater inflater=(LayoutInflater)Activity.this.getSystemService(Content.Layout.inflater.services);
获取layout中的xml布局文件item:
Linearlayout layout=(Linearlayout)inflater.inflater(R.layout.xxxxx,null);
获取布局文件item中的控件:
Edittext ed=(Edittext)layout.findViewbyId(R.id.xxxxxx);
把获取到的布局文件添加到对话框中:
AlertDialog.Buidler b=new Builder(Activity.this);
b.setview(layout);
7对话框与Toast共存问题:
先定义这个方法,然后在对话框中弹出Toast时,掉用这个方法,使这个方法保持窗口不关闭,要关闭时也要调用。
// 手动设置dialog是否可以关闭
private void holdDialog(DialogInterface dialog, boolean flag) {
try {
Field field = dialog.getClass().getSuperclass()
.getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, flag);
} catch (Exception e) {
e.printStackTrace();
}
}
调用:holdDialog(dialog true);
holdDialog(dialog false);
8.对话框的使用:
对话框定义和调用分为动态生成和预定义:动态生产就是使用的时候动态临时生存dialog不用事先声明方法,预定义,必须先重写dialog的oncreatedialog方法。
预定义:
重写dialog的oncreatedialog(int id)方法:
在里面调用AlertDialog.builder b=new builder(Acitivity.this);
生成对话框,然后添加对话框的内容等。
调用对话框的时候可以通过id调用不同的对话框:showdialog(int id);
动态生成:直接在调用的时候编写:
AlertDialog.builder b=new builder(Activity.this);
生成对话框,然后添加对话框内容等等。

更多相关文章

  1. Android(安卓)API中文文档AccessibilityService
  2. Android(安卓)API中文文档AccessibilityService
  3. Android(安卓)API中文文档AccessibilityService
  4. Android标题栏、状态栏、全屏
  5. android和js的相互调用
  6. xml字段含义
  7. Android跨进程通信IPC之9——Binder之Framework层C++篇1
  8. Android(安卓)Studio导入第三方类库的方法
  9. Android7.0中文文档(API)-- SimpleExpandableListAdapter

随机推荐

  1. onEditorAction不执行
  2. android 开发-spinner下拉框控件的实现
  3. Android Theme详细
  4. Android(shape.xml)
  5. Android中导入新的jdbc出现java.lang.NoS
  6. android-RelativeLayout实现顶部、中部、
  7. Android设置字间距和行间距
  8. Android抽屉(SlidingDrawer --类似androi
  9. 《Android 群英传》 阅读笔记 第四章~第
  10. android:configChanges android:screenOr