package com.example.myapplication;
import android.annotation.SuppressLint;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Message;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.AdapterView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import java.util.ArrayList;
import java.util.List;
import android.os.Handler;
public class monthActivity extends AppCompatActivity {
List<String> list;
private ImageButton Add;
private DBHelper helper;
private ListView listView;
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
while(true){
try {
//sleep2秒,可根据需求更换为响应的时间
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
mHandler.sendMessage(mHandler.obtainMessage());
}
}
};
//调用定时刷新函数
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
refresh();//编写的定时刷新函数
}
};
private void refresh() {
iniView();
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.month);
Add=findViewById(R.id.add);
listView=findViewById(R.id.l_month);
iniView();
new Thread(mRunnable).start();
}
@SuppressLint("Range")
private void iniView()
{
helper=new DBHelper(monthActivity.this);
list=new ArrayList<>();
SQLiteDatabase db=helper.getReadableDatabase();
Cursor cursor=db.query("account2",null,null,null,null,
null,null);
while (cursor.moveToNext()){
String mon=cursor.getString(cursor.getColumnIndex("Date")).substring(0,7);
if(!find(mon))
{
list.add(mon);
}
}
db.close();
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.list_month,list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String itemDate=adapter.getItem(position);
Intent intent=new Intent(monthActivity.this,MainActivity.class);
intent.putExtra("date",itemDate);
startActivity(intent);
}
});
}
public void addAccount(View view){//跳转
Intent intent=new Intent(monthActivity.this,new_cost.class);
//noinspection deprecation
startActivityForResult(intent,1);
}
public boolean find(String a)
{
boolean flag=false;
for (String str : list) {
if(str.equals(a))
{
flag=true;
break;
}
}
return flag;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==1)
{
iniView();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通