Android初级学习总结
来源:互联网 发布:java和asp.net的区别 编辑:程序博客网 时间:2024/05/30 04:56
查看ip:cmd-----ipconfig
============================================
去掉title: 第一种: requestWindowFeature(Window.FEATURE_NO_TITLE);
第二种: mainifests---theme----- <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
======================================
shape 形状:res>drawable文件夹>shape
角度<cornes>
设置边框《stroke》
填充色《solid》
============================
//提示对话框。
Builder aa;
aa=new AlertDialog.Builder(MainActivity.this);
aa.setTitle("确认退出吗");
aa.setMessage("推出就不能接受消息了");
aa.setIcon(R.drawable.ic_launcher);
aa.setPositiveButton("确定", null);
aa.setNegativeButton("取消", null);
aa.create();
aa.show();
//进度条对话框
ProgressDialog dd=new ProgressDialog(MainActivity.this);
dd.setTitle("确认退出吗");
dd.setMessage("真的确认吗");
dd.setIcon(R.drawable.ic_launcher);
dd.show();
====================================================
也可以写在监听里。
public void add(View v){
//VISIBLE 表示控件可见
//INVISBLE 表示空间不可见,但仍占用空间
//Gone 表示不仅不可见,而且不占用任何空间
if (pg_1.getVisibility()==View.GONE) {
pg_1.setVisibility(View.VISIBLE);
}else {
pg_1.setVisibility(View.GONE);}
//点击按钮,每点击一下进度条增加10%
int shuzhi=pg_1.getProgress();
pg_1.setMax(100);
shuzhi=shuzhi+10;
pg_1.setProgress(shuzhi);
}
==============================================
//Toast 的三种方式
Button yi = (Button) findViewById(R.id.yi);
Button er = (Button) findViewById(R.id.er);
Button san = (Button) findViewById(R.id.san);
yi.setOnClickListener(this);
er.setOnClickListener(this);
san.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.yi:
Toast.makeText(MainActivity.this, "默认吐司", Toast.LENGTH_SHORT).show();
break;
case R.id.er:
Toast toast=Toast.makeText(MainActivity.this, "自定义位置吐司吧", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
break;
case R.id.san:
Toast toast1=Toast.makeText(MainActivity.this, "自定义带图吐司", Toast.LENGTH_SHORT);
LinearLayout li=(LinearLayout) toast1.getView();
ImageView im=new ImageView(MainActivity.this);
im.setBackgroundResource(R.drawable.q);
li.addView(im);
toast1.setView(li);
toast1.show();
break;
}
}
============================================================================
AlertDialog 提示对话框。设置标题 内容 图片。最多可设置三个按钮
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button aButton=(Button) findViewById(R.id.a);
aButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Dialog dia=new AlertDialog.Builder(MainActivity.this)
.setTitle("你好树先生")
.setMessage("就是你")
.setIcon(R.drawable.o)
.setView(new EditText(MainActivity.this))
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "已确定吐司", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "不好不好吐司", Toast.LENGTH_LONG).show();
}
})
.setNeutralButton("中立", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "还可以吐司", Toast.LENGTH_LONG).show();
}
})
.create();
dia.show();
}
============================================================================
AlertDialog 自定义提示对话框。点击开始按钮进入另一个xml。有 设置号码 编辑框 保存 取消按钮,点击保存吐司
(三行代码)!
Button kaishi;
Button baocun;
Button quxiao;
AlertDialog builder ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_aa);
kaishi=(Button) findViewById(R.id.kaishi);
kaishi.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub 三行代码!!!
LayoutInflater inflater=getLayoutInflater();
View view=inflater.inflate(R.layout.duihua, null);
builder = new AlertDialog.Builder(AAA.this).setView(view).show();
baocun=(Button) view.findViewById(R.id.baocun);
quxiao=(Button) view.findViewById(R.id.quxiao);
baocun.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(AAA.this, "已保存", Toast.LENGTH_SHORT).show();
builder.dismiss();
}
});
===============================================================
第七单元 :Activity 四大组件之一
1.显示启动
Intent intent=new Intent(First01Activity.this,ThreeActivity.class);
startActivity(intent);
2.隐式启动
<intent-filter>
<action android:name="threeactivity01" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="threecategory01" />
</intent-filter>
按钮监听里写:
Intent intent=new Intent();
intent.setAction("threeactivity01");
intent.addCategory("threecategory01");
startActivity(intent);
========================================================================================================Intent回传案例。
接收 startActivityForResult(intent, 30);
onActivityResult();
if (requestCode==30&&resultCode==66) {
String ss=intent.getStringExtra("xxx");
--------
回传: Intent intent=new Intent();
intent.putExtra("xxx", string);
setResult(66, intent);
finish();
==========================================================================================================Bundle传值
Button bt_1=(Button) findViewById(R.id.bt_1);
bt_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//实例化对象并赋值
Student sss=new Student();
sss.setName("李强");
sss.setAge(23);
//实例化bundle 对象
Bundle bundle=new Bundle();
bundle.putSerializable("student", sss);
//讲bundle 对象添加到intent 中
intent.putExtras(bundle);
//开启
startActivity(intent);
}
});
==================================
TextView tv_1=(TextView) findViewById(R.id.tv_1);
//获取前一个界面传递过来的值
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
Student student=(Student) bundle.getSerializable("student");
String name=student.getName();
int age=student.getAge();
tv_1.setText("姓名:"+name+"------------"+"年龄"+age);
}
}
================================================================================================
淡入淡出效果:
new CountDownTimer(2000,2000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
Intent intent=new Intent(Butu2Activity.this,SecondActivity.class);
startActivity(intent);
int ii=Integer.parseInt(android.os.Build.VERSION.SDK);
if (ii>=5) {
Butu2Activity.this.overridePendingTransition(R.anim.one1, R.anim.one2);
}
finish();
}
}.start();
===========================
进度条提示框:
dialog = new ProgressDialog(Butu2Activity.this);
dialog.setTitle("提示");
dialog.setMessage("正在连接网络,请稍后。。。");
// STYLE_HORIZONTAL 水平样式
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
进度条:
<GridView
android:id="@+id/gv_name"
android:numColumns="2"
android:horizontalSpacing="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
===========================================================================Listview的监听
viewHolder.bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context,XiangqingActivity.class);
intent.putExtra("xiangqing", list.get(position).getName());
context.startActivity(intent);
}
});
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(context,Liaotian.class);
intent.putExtra("xxx", list.get(position).getName());
context.startActivity(intent);
}
});
=======================================================================================
initProgress(); 跳转页面之前:显示圆形进度条两秒》
private void initProgress() {
dialog=new ProgressDialog(Butu2Activity.this);
dialog.setMax(100);
dialog.setCancelable(false);
dialog.setMessage("正在加载...");
dialog.show();
Timer time=new Timer();
time.schedule(new MyTask(), 2000);
}
class MyTask extends TimerTask {
@Override
public void run() {
dialog.dismiss();}}
==================================================================================
显示进度条。每0.5秒增加10%。增加到100%关闭
private void initProgress() {
dialog=new ProgressDialog(SecondActivity.this);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMax(100);
dialog.setMessage("正在读取账本...");
dialog.setCancelable(falus);
Timer time=new Timer();
time.schedule(new MyTask(), 500, 500);
dialog.show();
}
class MyTask extends TimerTask{
int progress=0;
@Override
public void run() {
if(progress<90){
progress+=10;
dialog.setProgress(progress);
}else{
dialog.dismiss();
}
}
}
==============================================================
把输入框内容 存储进文件
SharedPreferences.Editor sp=getSharedPreferences("aaa", MODE_PRIVATE).edit();
sp.putString("name", yonghuming1.getText().toString());
sp.putString("psw", mimaben.getText().toString());
sp.putBoolean("married", false);
sp.apply();
读取文件内容。
SharedPreferences p=getSharedPreferences("aaa", MODE_PRIVATE);
String name1=p.getString("name", "");
String psw=p.getString("psw", "");
====================================================
动画的开始:
Animation an1=AnimationUtils.loadAnimation(MainActivity.this, R.anim.suofang1);
img1.setAnimation(an1);
动画的监听:
an2.setAnimationListener(new AnimationListener()
===========================================================================
在数据库插入10条数据:
private void initData() {
MySql sql=new MySql(SecondActivity.this, "goods.db", null, 1);
db=sql.getReadableDatabase();
ContentValues values=new ContentValues();
for(int i=0;i<10;i++){
values.put("image", R.drawable.ic_launcher);
values.put("name", "哇哈哈"+i);
values.put("number", "100"+i+"瓶");
db.insert("Goods", null, values);
}
}
======================================================================
建表:
public void onCreate(SQLiteDatabase db) {
String sql="create table Goods(id integer primary key autoincrement,image integer,name text,number text)";
db.execSQL(sql);
}
onUpgrade()
db.execSQL("drop table if exists biaoge1");
======================================================================
查询数据库的 内容 加入到list集合。
private void initQuery() {
list=new ArrayList<Goods>();
Cursor cursor=db.query("Goods", null, null, null, null, null, null);
while(cursor.moveToNext()){
Goods good=new Goods();
good.setId(cursor.getInt(cursor.getColumnIndex("id")));
good.setImage(cursor.getInt(cursor.getColumnIndex("image")));
good.setName(cursor.getString(cursor.getColumnIndex("name")));
good.setNumber(cursor.getString(cursor.getColumnIndex("number")));
list.add(good);
}
==================================================================
动画:缩放
<scale
android:duration="500"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.5"
android:toYScale="1.5"
android:repeatCount="5"
android:repeatMode="reverse"
xmlns:android="http://schemas.android.com/apk/res/android">
</scale>
===================================================================
String name = list.get(position).getName();
db.delete("Goods", "name=?", new String[]{name});
====================================存储数据在文件
public void save(View view) throws IOException{
String name=et1.getText().toString().trim();
FileOutputStream o1=openFileOutput("lilili", MODE_PRIVATE);
OutputStreamWriter out=new OutputStreamWriter(o1);
BufferedWriter writer=new BufferedWriter(out);
writer.write(name);
writer.close();
out.close();
o1.close();
=========================================
Toast在中间位置
Toast toast=Toast.makeText(SanActivity.this, "注册界面", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
========================================
长按listview条目 进入商品详情
android:focusable="false"
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent=new Intent(SecondActivity.this, XiangqingActivity.class);
startActivity(intent);
return true;
}
});
==================================================================
创建表格:Mysql extends SQLiteOpenHelper
String sql="create table Goods(id integer primary key autoincrement,image integer,name text,number text)";
db.execSQL(sql);
//建数据库,在数据库插入10条数据。SQLiteDatabase db;
private void initData() {
MySql sql=new MySql(SecondActivity.this, "goods.db", null, 1);
db=sql.getReadableDatabase();
ContentValues values=new ContentValues();
for(int i=0;i<10;i++){
values.put("image", R.drawable.ic_launcher);
values.put("name", "哇哈哈"+i);
values.put("number", "100"+i+"瓶");
db.insert("Goods", null, values);
}
}
//查询数据库的 内容 并加入到list集合。
private void initQuery() {
list=new ArrayList<Goods>();
Cursor cursor=db.query("Goods", null, null, null, null, null, null);
while(cursor.moveToNext()){
Goods good=new Goods();
good.setId(cursor.getInt(cursor.getColumnIndex("id")));
good.setImage(cursor.getInt(cursor.getColumnIndex("image")));
good.setName(cursor.getString(cursor.getColumnIndex("name")));
good.setNumber(cursor.getString(cursor.getColumnIndex("number")));
list.add(good);}}
================================================================================
布局中的删除按钮 点击同时删除数据库内容
viewHolder.bt_delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
list.remove(position);
notifyDataSetChanged();
//获取集合中的名字。在数据库中删除
String name = list.get(position).getName();
db.delete("Goods", "name=?", new String[]{name});
}
});
===================================================================
ViewHolder viewHolder;
if (convertView==null) {
viewHolder=new ViewHolder();
convertView=View.inflate(context, R.layout.item, null);
viewHolder.image=(ImageView) convertView.findViewById(R.id.image);
viewHolder.name=(TextView) convertView.findViewById(R.id.tv_name);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder) convertView.getTag();
}
Goods good=list.get(position);
viewHolder.image.setBackgroundResource(good.getImage());
viewHolder.name.setText(good.getName());
viewHolder.number.setText(good.getNumber());
return convertView;}
================================================================================
建库
SQLiteDatabase db ;
mysql = new Mysql(MainActivity.this, "sql1.db", null, 1);
mysql.getWritableDatabase();
====================增
db = mysql.getWritableDatabase();
values = new ContentValues();
values.put("name", "wens");
db.insert("biaoge1", null, values);
values.clear();
=============================查
Cursor cursor=db.query("biaoge1", null, null, null, null, null, null);
if (cursor!=null) {
while(cursor.moveToNext()){
String name=cursor.getString(cursor.getColumnIndex("name"));
String sex=cursor.getString(cursor.getColumnIndex("sex"));
int age=cursor.getInt(cursor.getColumnIndex("age"));
} }
cursor.close();
db.close();
==================================删
db.delete("biaoge1", "name=?", new String[]{"文胜ss"});
========================
改
values=new ContentValues();
values.put("age", 16);
db.update("biaoge1", values, "name=?", new String[]{"李鹏"});
============================================================================================
//获取json文件的 图片和文字 放在listview 里
public class MainActivity extends Activity {
ListView lv_name;
String path="http://192.168.1.33:8080/jsontext/travel.json";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initData() {
new MyAsyncTask().execute(path);
}
private void initView() {
lv_name=(ListView) findViewById(R.id.lv_name);
}
class MyAsyncTask extends AsyncTask<String, Integer, String>{
StringBuffer sb=new StringBuffer();
List<Travel> list=new ArrayList<Travel>();
@Override
protected String doInBackground(String... params) {
try {
URL url=new URL(params[0]);
HttpURLConnection conn=(HttpURLConnection) url.openConnection();
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
conn.connect();
if (conn.getResponseCode()==200) {
InputStream is=conn.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String ss=null;
while((ss=br.readLine())!=null){
sb.append(ss);
}
br.close();
isr.close();
is.close();
conn.disconnect();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
try {
JSONObject jo=new JSONObject(result);
JSONArray ja=jo.getJSONArray("travels");
for (int i = 0; i < ja.length(); i++) {
JSONObject jo2=ja.getJSONObject(i);
Travel t=new Travel();
t.setCity(jo2.getString("city"));
t.setTitle(jo2.getString("title"));
t.setTravelurl(jo2.getString("travelurl"));
list.add(t);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MyAdapter myadapter=new MyAdapter(list,MainActivity.this);
lv_name.setAdapter(myadapter);
}
}
}
==============================================================
权限
</application>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
</manifest>
获取联系人姓名
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ContentResolver con=getContentResolver();
Cursor cunsor = con.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(cunsor!=null){
while(cunsor.moveToNext()){
int nameIndex = cunsor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
);
String name = cunsor.getString(nameIndex);
Log.e("MainActivity", "获取到的联系人姓名为:"+name);
}
}
}
});
=======================================Intent传值================================
发送: Intent intent=new Intent(MainActivity.this,Main2Activity.class);
intent.putExtra("name","小明");
intent.putExtra("age",11);
startActivity(intent);
接收: String ss = getIntent().getStringExtra("name");
int ii = getIntent().getIntExtra("age", 0);
Toast.makeText(this, ss + "\t" + ii, Toast.LENGTH_SHORT).show();
========================================Intent bundle传值===========================================
// 发送: Intent intent = new Intent(MainActivity.this, Main2Activity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "小明熊爱明");
bundle.putInt("age", 20);
intent.putExtra("bundle", bundle);
startActivity(intent);
//接收数据。
String ss=getIntent().getBundleExtra("bundle").getString("name");
int ii=getIntent().getBundleExtra("bundle").getInt("age",0);
Toast.makeText(this, ss + "\t" + ii, Toast.LENGTH_SHORT).show();
=====================================================================================================
// 用bundle传对象
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
//实例化对象并赋值
Student sss=new Student();
sss.setName("李强");
sss.setAge(23);
//实例化bundle 对象
Bundle bundle=new Bundle();
bundle.putSerializable("student", sss);
//讲bundle 对象添加到intent 中
intent.putExtras(bundle);
//开启
startActivity(intent);
==========
//获取前一个界面传递过来的值
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
Student student=(Student) bundle.getSerializable("student");
String name=student.getName();
int age=student.getAge();
tv_1.setText("姓名:"+name+"------------"+"年龄"+age);
=======================================================================补间动画
case R.id.bu1: //透明
AlphaAnimation a1 = new AlphaAnimation(1.0f, 0.0f);
a1.setDuration(200);
a1.setRepeatCount(-1);
lin.startAnimation(a1);
break;
case R.id.bu2: //中心缩放
ScaleAnimation sc1=new ScaleAnimation(1.0f, 3.0f, 1.0f, 3.0f,Animation.RESTART, 0.5f, Animation.RESTART,0.5f);
sc1.setDuration(1000);
sc1.setRepeatCount(-1);
lin.startAnimation(sc1);
break;
case R.id.bu3: //中心旋转
RotateAnimation ro=new RotateAnimation(30, 360,Animation.RESTART, 0.5f,Animation.RESTART, 0.5f);
ro.setDuration(1000);
ro.setRepeatCount(-1);
lin.startAnimation(ro);
break;
case R.id.bu4: //平移
TranslateAnimation tran = new TranslateAnimation(0, 0, 0, 500);
tran.setDuration(1000);
tran.setRepeatCount(-1);
lin.startAnimation(tran);
break;
case R.id.bu5: //综合 透明alpha + 位移Translate 放到动画集合里
AlphaAnimation anim1 = new AlphaAnimation(1.0f, 0.0f);
anim1.setDuration(1000);
anim1.setRepeatCount(-1);
TranslateAnimation anim2 = new TranslateAnimation(0, 0, 0, 300);
anim2.setDuration(2000);
anim2.setRepeatCount(-1);
AnimationSet set=new AnimationSet(true);
set.setDuration(2000);
set.addAnimation(anim1);
set.addAnimation(anim2);
lin.startAnimation(set);
==========================================================!!在sd卡写入文件,需要加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
//1.获取内存卡位置
//2.拼接一个文件路径
File file = Environment.getExternalStorageDirectory();
String path=file.getAbsolutePath()+"/liqiang11.txt";
//验证
System.out.println(path+"pppp");
tView.setText(path);
//创建文件 //判断文件是否存在。不存在就创建
File file2=new File(path);
if (!file2.exists()) {
try {
file2.createNewFile();
//写字符串
FileOutputStream out=new FileOutputStream(file2);
out.write("nihaonihaonihaonihao".getBytes());
out.flush();
out.close();
阅读全文
0 0
- Android初级学习总结
- C#学习初级总结
- 初级学习JSP总结
- android初级面试总结
- Android初级问题总结
- Android的初级学习
- Android初级学习--序言
- SQL Server学习总结--初级
- 初级Java学习笔记总结
- android 初级学习笔记1
- [android] Intent的初级学习
- Android初级学习重点提取
- perl的EXCEL操作初级学习总结
- android安全机制的初级探究总结
- android学习笔记(4)Intent初级学习
- Android学习笔记-Android初级 (一)
- Android学习笔记-Android初级 (二)
- Android学习笔记之初级应用
- ES6之箭头函数
- 编译原理
- 全面解析Linux 内核 3.10.x
- AS上传项目到GitHub报错can't finish Github sharing precess.
- linux 使用shell脚本写数据报表并且在web端浏览
- Android初级学习总结
- Linux的vi命令
- Phantomjs 与 Chrome 的一点区别
- ProjectEuler-Problem 7-10001st prime
- Kotlin官方参考整理——04.函数和lambda表达式
- 基于Win32控制台的万年历的实现(上)
- 全面解析Linux 内核 3.10.x
- select服务器---I/O多路连接之select
- Javascript再改造(1)——数据类型和变量