家庭记账小账本Android studio

经过长达7天多的时间,从Android studio的安装碰到很多的问题,真的很不走运,别人安装Android studio都是一气呵成,我的Android真的没话说

把自己的这些天的开发成果展示一下

做的还是很粗略,感觉自己应该多敲一些代码啦,敲代码太慢了,还有很多不懂的,

现在我总结一下这些天遇到的问题

首先是关于Android的安装问题,起初呢,我想用esplise来做一下软件,但是同学们说软件只能由Android才能打包,esolise不能用于打包,不知道是对的还是错的,不过esplise我也安装了,需要下载ADT和sdk插件,具体方法可以网上查到,想要用esplise的同学可以试试

然后是我遇到的安装android studio的问题

首先是证书问题,我觉的应该不是网络问题,可是就是安装不好,试了很多种办法,虽然安装了证书之后可以用了,但是过了几天之后又不能用了,后来查到了很多资料,感觉可能是因为gradle没有安装好,我去网上搜集了资料,查到需要配置环境,然而,在安装Android studio的时候并没有配置,然后尝试了一下重新删除gradle‘,按照网上的方法找到了自己的版本,由重新导入,安装,配置环境变量,终于可以了

哈哈哈,然后就是自己手贱,不小心突然又给gradle升级了,结果。。。又是没有查找到有效证书,又按照原方法,重新做了一遍,赶紧把升级提醒关闭了。。无奈呀

还有一些问题我在前几天的博客里说了,现在就不重复了

最后展示一下代码,貌似在有些手机上会闪退,在接下来的几天里会加以改良

package com.example.bank;

import android.database.Cursor;
import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private List<CostBean> mCostBeanList;
    private DatabaseHelper mDatabaseHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        mDatabaseHelper=new DatabaseHelper(this);
      mCostBeanList=new ArrayList<>();
      ListView costList=(ListView) findViewById(R.id.lv_main);
      initCostData();
      costList.setAdapter(new CostListAdapter(this,mCostBeanList));

      FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    private void initCostData() {
        mDatabaseHelper.deleteAllData();
        for (int i=0;i<6;i++) {
            CostBean costBean=new CostBean();
            costBean.costTitle=i+"mook";
            costBean.costDate="11-11";
            costBean.costMoney="20";
           mDatabaseHelper.insertCost(costBean);
        }
       Cursor cursor= mDatabaseHelper.getAllCostData();
        if(cursor !=null)
        {
            while(cursor.moveToNext()){
                CostBean costBean=new CostBean();
                costBean.costTitle=cursor.getString(cursor.getColumnIndex("cost_title"));
                costBean.costDate=cursor.getString(cursor.getColumnIndex("cost_date"));
                costBean.costMoney=cursor.getString(cursor.getColumnIndex("cost_money"));
                mCostBeanList.add(costBean);
            }
            cursor.close();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="80dp">
    <TextView
        android:id="@+id/tv_title"
        android:layout_width="200dp"
        android:layout_height="80dp"
        android:layout_alignParentLeft="true"
        android:gravity="center"
        android:singleLine="true"
        android:text="costTitle"
        android:ellipsize="marquee"
        android:layout_marginLeft="10dp"
        android:textSize="35sp" />
    <TextView
        android:id="@+id/tv_date"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:gravity="center"
        android:textSize="20sp"
        android:layout_marginLeft="15dp"
        android:layout_toRightOf="@id/tv_title"
        android:text="costDate"
        />
    <TextView
        android:id="@+id/tv_cost"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:gravity="center"
        android:layout_alignParentRight="true"
        android:textSize="30sp"
        android:layout_marginRight="20dp"
        android:text="30"
        />

</RelativeLayout>
package com.example.bank;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class DatabaseHelper extends SQLiteOpenHelper {

    public DatabaseHelper(@Nullable Context context) {
        super(context, "imooc_daily", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    db.execSQL("creat table if not exists imooc_cost("+
            "id integer primary key,"+
            "cost_title varchar,"+
            "cost_date varchar,"+
            "cost_money varchar)");
    }
    public void insertCost(CostBean costBean)
    {
        SQLiteDatabase database=getWritableDatabase();
        ContentValues cv=new ContentValues();
        cv.put("cost_title",costBean.costTitle);
        cv.put("cost_date ",costBean.costDate);
        cv.put("cost_money",costBean.costMoney);
        database.insert("imooc_cost",null,cv);
    }
    public Cursor getAllCostData(){
        SQLiteDatabase database=getWritableDatabase();
        return database.query("imooc_cost",null,null,null,null,null,"cost_date "+"ASC");

    }
    public void deleteAllData(){
        SQLiteDatabase database=getWritableDatabase();
        database.delete("imooc_cost",null,null);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <ListView
        android:id="@+id/lv_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>

做的还不算太好,有些毛病

原文地址:https://www.cnblogs.com/sunhongbin/p/12303966.html

时间: 2024-10-08 03:09:33

家庭记账小账本Android studio的相关文章

家庭记账小账本(三)

家庭记账小账本打算先通过微信小程序来实现,昨天就去注册了解了一下微信小程序,感觉比较复杂而且困难.如何将ecplise源代码与小程序连接,如何建立数据库等等都困扰了我.查阅网上的资料也没有很大的进展.但在其中了解到可以利用微信开发者工具直接建立js,wxml,wxss,json文件来实现.但这就需要把前两天用java写的代码推翻,去重新学习微信小程序中的代码.于是好不容易查阅到了小程序的样例,看着别人的代码来慢慢的学习.他人提供的源代码也有些许的问题,包括一些界面显示的问题,我都慢慢的解决了.而

家庭记账小账本(二)

今天,按照昨天的思路,建立了两个数据库表,一个用来存放家庭用户信息,一个用来存放消费记录与金额.完成了登录的功能以及记账的功能.记账的数据库表中新加了“时间”,可以自动获取添加账单的当地时间.计划再新加一个“家庭角色”,登录以后就会获取他的家庭角色,因为这样就可以看到是谁的花费,也是自动添加到数据库中的. 原文地址:https://www.cnblogs.com/xhj1074376195/p/12215592.html

微信小程序--家庭记账小账本(五)

今天,尝试弄了账单的表,发现还是弄不了,于是就把账单上的删除功能给去了,然后查阅网上资料,实现了自动加时间的功能.并且对界面进行了优化. 最后在手机上看到的页面 原文地址:https://www.cnblogs.com/xhj1074376195/p/12230366.html

再见eclip 下个项目开始用Android Studio

eclipse_xu提供指导 求投票呀求投票 http://vote.blog.csdn.net/Article/Details?articleid=30748339 转载请注明:http://blog.csdn.net/eclipsexys/article/details/30748339 首先,下载,http://www.android-studio.org/ 去年的Google大会上,Google带给我们一个小玩具--Android Studio,说它是玩具,是因为它确实比较菜,界面过时,

Eclipse,到了说再见的时候了——Android Studio最全解析

去年的Google大会上,Google带给我们一个小玩具--Android Studio,说它是玩具,是因为它确实比较菜,界面过时,操作不流畅,效率也不高,但是现在,虽然版本还是0.6,甚至都没到1.0,但是我们可以发现亲儿子到底是亲儿子,现在的Android Studio已经今非昔比,用了一段时间,简直爱不释手,我觉得,It's time to say goodbye eclipse!本文将带领大家彻底的了解一下Android Studio,注意:由于天朝的原因,我们的了解过程会比较曲折,但是

微信小程序家庭记账本开发进度五

我们要做的事一个家庭记账本的微信小程序,首先,先对app.json,进行编译 { "pages": [ "pages/index/index", "pages/item/item" ], "window": { "backgroundTextStyle": "dark", "navigationBarBackgroundColor": "#fff"

Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio添加Parcelable序列化小工具(快速提高开发效率) Android Studio是google专门为开发Android提供的开发工具,在它内部可以直接的添加一些非常好用的开发小工具,这里就讲解怎样添加这些小工具,并且向大家推荐一个非常有用的对象传递时,必须要把对象序列化的接口Parcelable小工具; 这里先介绍下 Android中实现序列化的两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是An

最强 Android Studio 使用小技巧和快捷键【非原创】

(发现本文是个很不错的文章,相当实用,特分享与大家.分享自:http://m.open-open.com/m/lib/view/1458715872710.html 特此声明,好记性不如烂笔头,market下来以备后用) 原文如下: 写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62个小技巧分为常用技巧(1 – 28).编码技巧(29 –

Android——Android Studio的一些小技巧(转)

ndroid课程---Android Studio的一些小技巧 APK瘦身 在Android Studio中我们可以开启混淆,和自动删除没有Resources文件,来达到给APP瘦身的目的,这对于一些维护很久的老项目比较有用,里面有很多无效的Resource, 删除后生成的APK会小很多 我们只需要在项目的build.gradle中加入 android { buildTypes { release { minifyEnabled true shrinkResources true } } } m