- 博客(23)
- 收藏
- 关注
原创 临时7.16
package com.jinanchang.jinxueyuan.frame;import android.content.SharedPreferences;import android.os.Bundle;import androidx.fragment.app.Fragment;import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;import android.view.LayoutInflater;import.
2021-07-16 23:30:28
141
原创 轮播图的实现
import android.content.Context;import android.os.Bundle;import android.widget.ImageView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;import com.bumptech.glide.Glide;import com.youth.banner.Banner;import com.youth.ban.
2021-07-16 23:11:17
196
原创 临时文件7.15
package com.jinanchang.jinxueyuan.activity;import androidx.appcompat.app.AppCompatActivity;import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;import android.content.BroadcastReceiver;import android.content.Context;import android.content.I.
2021-07-15 22:55:29
187
原创 webview
public class WebViewActivity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_view);.
2021-07-13 23:05:52
142
原创 ListView下划线
<View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:background="#00ff00" />
2021-07-13 10:33:52
471
原创 ListView实现聊天框
/*模仿IM聊天布局 */public class ChatActivity extends AppCompatActivity { private ListView mListView; //自定义聊天信息类 List<ChatMessage> mChatMessages = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceSt...
2021-07-11 16:09:50
354
原创 ListView+JSON
/*异步访问网络,解析请求的json数据,加载数据到ListView。三大块东西:异步请求,JSON解析,自定义适配器convertView 把从XML文件读出来的信息装到一个view里,当这个convertView不存在时,即第一次使用它 ,我们就创建一个item布局的View对象并赋给convertView,以后使用convertView时 ,只需从convertView中getTag取出来就可以,不需要再次创建item的布局对象了,这样便提.
2021-07-11 15:48:49
519
1
原创 ListView(二)
Main:public class MainActivity extends AppCompatActivity { private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai
2021-07-11 15:38:00
123
原创 CardView
微信公众号小卡片,ListView中嵌套CardViewpublic class MainActivity extends AppCompatActivity { private ListView mLvMsgList; private List<Msg> mDatas = new ArrayList<>();//msg容器 private MsgAdapter mAdapter;//适配器 @Override protected .
2021-07-11 14:51:39
91
原创 SQLite
/*SQLite的增删查改 db.rawQuery(); 查询 select * from 表名 db.execSQL(); 添加、删除、修改、创建表SQLiteOpenHelper Android平台里一个数据库辅助类,用于创建或打开数据库,并且对数据库的创建和版本进行管理。SQLiteDatabase 用于管理和操作SQLite数据库,几乎所有的数据库操作。 */public class MainActiv.
2021-07-11 14:31:19
316
原创 本地文件存储
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void operate(View v.
2021-07-11 12:22:01
266
原创 Application全局应用
/*1、继承Application:在Android中,可以通过继承Application类来实现应用程序级的全局变量,这种全局变量方法相对静态类更有保障,直到应用的所有Activity全部被destory掉之后才会被释放掉。继承Application类,主要重写里面的onCreate()方法(android.app.Application包的onCreate() 才是真正的Android程序的入口点),就是创建的时候,初始化变量的值 ,所以会先执行application的onCr.
2021-07-11 12:14:43
787
原创 广播接收者
/*有序广播 高优先级的 Receiver 可以决定低优先级的 Receiver 是否还能收到广播无序广播 所有广播都是异步同时发送,此时 Receiver 的接收时序也是完全随机的。 正因为异步且无需保证时序,所以无需广播更高效,但是不能在各个 Receiver 之间传递数据。静态注册 在 AndroidManifest.xml 中添加以下注册代码 注册的是接收器。静态注册的程序不管是否启动 ,都可以收得到匹配的广播的,并对这个广播操作。动态注册 .
2021-07-11 11:57:48
103
原创 ListView及适配器(一)
/*《获取所有应用信息的列表,并实现点击事件打开应用(有顶部图片,优化)》ListView展示列表数据:在layout中创建ListView,然后是创建适配器(前提条件:创建每一行的layout即Image+TextView,创建每一行的数据(数据可以为集合,需建一个自定义数据类),在getView里把布局资源拿出来放入一个convertView即转换型视图中,再通过这个view和position去set设置数据),最后把适配器与ListView相匹配。其中适配器获取数据:获取所有应用的信息L.
2021-07-10 23:27:53
750
原创 异步请求 下载
/*网络上请求数据: 申请网络权限 读写存储权限 在manifest里加三行 在strings里设置一下常量ANR(Application Not Responding)普通的主线程更新:Activity.runOnUIThread(Runnable),View.post(Runnable),View.postDelayed(Runnable,long)。AsyncTask 类通常用来在执行后台任务的同时刷新 UI,通过调用execute()方法触发后台任务的执行,首先会回调 AsyncTask.
2021-07-04 18:53:22
324
原创 Handler
/*Handler:每一个 Handler 实例与一个线程关联,每一个线程又会维护一个自己的 MessageQueue ,当我们创建一个 Handler 的时候我们需要制定一个 Looper 对象(Looper对象对应一个线程) ,这样就将一个 Handler 对象和一个线程绑定到了一起,随后就可以编写我们的耗时操作 ,然后通过 Handler 将消息塞入线程的 MessageQueue中,当对应线程从 MessageQueue 取出该条消息的时候 ,就会回调 Handler 的 ha.
2021-07-04 18:47:04
123
原创 http:get/post
/*get请求: 主线程跳到子线程再跳回主线程 需要添加到 AndroidManifest.xml中 申请权限主线程另开一个子线程去处理get请求,防止主线程被卡死调用自定义get方法 用try catch 设置连接属性 获取回复码 如果一致,获取输入流 将输入流转换成字符串直接在主线程UI上运行,子线程不能对主线程UI进行操作runOnUiThread(new Runnable() {}post请求:设置运行输入,输出 Post方式不能缓存,需手动设置.
2021-07-04 18:26:05
166
原创 自定义View和圆形进度条
/*一、自定义属性的声明与获取。重写方法 TestView(Context context, AttributeSet attrs) 自定义属性并获取新建一个 #values# 布局文件声明需要的属性 <declare-styleable 跟自定义控件名 用 <attr 添加属性 <attr 里 <enum ></enum> 枚举自定义的属性,之后可以在 #主布局# 文件使用, 使用前布局文件要自定义前缀 xm.
2021-07-04 18:04:14
88
原创 转场动画:揭露动画,多视图转场,activity之间转场
//主页,涵盖三个动画功能点击事件,分别跳转:startActivity(new Intent(this, XXXActivity.class));//一、揭露动画:RevealActivity ,由 CheckBox+View+Button 组成 ,// Animator animator = viewanimationutils.createcircularreceal() 静态方法。//二、多视图转场:SceneActivity transition.xml FrameLayout..
2021-07-04 17:41:10
202
原创 读短信、读联系人、添加联系人
public class getsystemActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_getsystem); .
2021-07-04 17:20:36
130
原创 帧动画、视图动画、属性动画
//通过 AnimationDrawable类定义帧动画,先在布局文件drawable建立一个animation-list文件// XML文件存放在工程中res/drawable/目录下。XML文件的指令(即属性)为动画播放的顺序和时间间隔。// 在XML文件中<animation-list>元素为根节点,<item>节点定义了每一帧,表示一个drawable资源的帧和帧间隔。//AnimationDrawable 有两个方法,start和stop。//主布局..
2021-07-04 16:47:09
130
原创 Service、AIDL
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void operate(View v.
2021-07-04 16:10:17
114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人