下面是我的数据库操作代码。Java语言我想根据从HitungFinalbulanacitivity中选择的月份和年份,对列\u JUMLAH中的所有值求和。Java语言
但在此之前,我想从选定的月份和年份微调器中选择COLUMN_JUMLAH值。
但我对如何在文本视图中显示所选总和值的结果感到困惑。仅供参考,在我的表中,\u JUMLAH列初始化为字符串,我在getAllValues()方法中将这些值转换为double类型。
无论如何,我使用了spinner和存储在字符串数组中的值。
private Periode cursorToPeriode(Cursor cursor){
Periode periode = new Periode();
Log.v("info", "The getLONG " + cursor.getLong(0));
Log.v("info", "The setLatLng " + cursor.getString(1) + "," + cursor.getString(2) + "," + cursor.getString(3) + "," + cursor.getString(4));
periode.setId(cursor.getLong(0));
periode.setAwalPeriode(cursor.getString(1));
periode.setAkhirPeriode(cursor.getString(2));
periode.setKeterangan(cursor.getString(3));
periode.setJumlah(cursor.getString(4));
return periode;
}
public ArrayList<Periode> getAllPeriode(){
Cursor cursor = database.query(TABLE_PERIODE, allColumns, null,null,null,null,null);
ArrayList<Periode> periodes = new ArrayList<>();
cursor.moveToFirst();
while (!cursor.isAfterLast()){
Periode periode = cursorToPeriode(cursor);
periodes.add(periode);
cursor.moveToNext();
cursor.close();
return periodes;
}
public ArrayList<Periode> getJumlahPeriode(){
Double jumlah;
Cursor cursor = database.query(TABLE_PERIODE,null, COLUMN_JUMLAH , null,null,null,null,null);
ArrayList<Periode> periodes = new ArrayList<>();
cursor.moveToFirst();
while (!cursor.isAfterLast()){
Periode periode = cursorToPeriode(cursor);
periodes.add(periode);
cursor.moveToNext();
}
cursor.close();
return periodes;
}
public int addAllValues(String bulan, String tahun){
int total = 0;
Cursor c = database.rawQuery("SELECT SUM(" + (Double.parseDouble(COLUMN_JUMLAH)) + ") FROM " + TABLE_PERIODE + " WHERE strftime('%Y'," + tahun + ") AND strftime('%M,'"+ bulan +")", null);
if(c.moveToFirst()){
total = c.getInt(0);
}
return total;
}
这是我的HitungFinalbulanacitivity。java:
package com.example.kalkulatorakuntansi;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import com.example.kalkulatorakuntansi.Adapter.DatabaseOperations;
import org.w3c.dom.Text;
import java.time.Year;
import java.util.ArrayList;
import java.util.Calendar;
public class HitungFinalBulanActivity extends AppCompatActivity {
Spinner MonthSpinner;
Spinner YearSpinner;
TextView result, totalJumlah;
Integer myDb;
private DatabaseOperations transaksiOperations;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hitung_final_bulan);
transaksiOperations = new DatabaseOperations(this);
transaksiOperations.Open();
MonthSpinner = findViewById(R.id.monthSpinner);
YearSpinner = findViewById(R.id.yearspinner);
totalJumlah = findViewById(R.id.txtViewJumlah);
result = findViewById(R.id.txtViewHasilBulan);
ArrayAdapter<CharSequence> MonthAdapter = ArrayAdapter.createFromResource(this,
R.array.months_array, android.R.layout.simple_spinner_item);
MonthAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
MonthSpinner.setAdapter(MonthAdapter);
ArrayList<String> years = new ArrayList<String>();
int thisYear = Calendar.getInstance().get(Calendar.YEAR);
for (int i = 2010; i <= thisYear; i++) {
years.add(Integer.toString(i));
}
ArrayAdapter<String> YearAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, years);
YearSpinner.setAdapter(YearAdapter);
myDb = transaksiOperations.addAllValues(MonthSpinner.getSelectedItem().toString(), YearSpinner.getSelectedItem().toString());
}
}
我不确定代码是否能正常工作,因为我已经尝试过了,但什么都没有发生。请帮我解决这个问题!非常感谢。
以下是错误:
E/AndroidRuntime:致命异常:主进程:com。实例kalkulatorakuntansi,PID:19866爪哇。lang.RuntimeException:无法启动活动组件信息{com.example.kalkulatorakuntansi/com.example.kalkulatorakuntansi.hitungfinalbulanacitivity}:android。数据库sqlite。SQLiteException:接近“01”:语法错误(代码1),编译时:从tb\U periode中选择CAST(SUM(Jumlah)作为Double),其中strftime('%Y',2010)和strftime('%M,'01)在android上。应用程序。ActivityThread。在android上执行LaunchActivity(ActivityThread.java:2778)。应用程序。ActivityThread。android上的handleLaunchActivity(ActivityThread.java:2856)。应用程序。ActivityThread-android上的wrap11(未知源:0)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:1589)。操作系统。处理程序。android上的dispatchMessage(Handler.java:106)。操作系统。活套。android上的loop(Looper.java:164)。应用程序。ActivityThread。java上的main(ActivityThread.java:6494)。朗,反思一下。方法在com上调用(本机方法)。Android内部的操作系统。RuntimeInit$MethodandArgscaler。在com上运行(RuntimeInit.java:438)。Android内部的操作系统。合子岩。main(ZygoteInit.java:807)由:android引起。数据库sqlite。SQLiteException:接近“01”:语法错误(代码1),编译时:从tb\U periode中选择CAST(SUM(Jumlah)作为Double),其中strftime('%Y',2010)和strftime('%M,'01)在android上。数据库sqlite。SQLiteConnection。android上的nativePrepareStatement(本机方法)。数据库sqlite。SQLiteConnection。android上的acquirePreparedStatement(SQLiteConnection.java:890)。数据库sqlite。SQLiteConnection。在android上准备(SQLiteConnection.java:501)。数据库sqlite。SQLiteSession。在android上准备(SQLiteSession.java:588)。数据库sqlite。SQLITE程序。(SQLiteProgram.java:58)在android上。数据库sqlite。SQLiteQuery。(SQLiteQuery.java:37)在android上。数据库sqlite。SQLiteDirectCursorDriver。android上的查询(SQLiteDirectCursorDriver.java:46)。数据库sqlite。SQLiteDatabase。android上的rawQueryWithFactory(SQLiteDatabase.java:1392)。数据库sqlite。SQLiteDatabase。com上的rawQuery(SQLiteDatabase.java:1331)。实例kalkulatorakuntansi。适配器。数据库操作。com上的addAllValues(DatabaseOperations.java:167)。实例kalkulatorakuntansi。HitungFinalbulanacity公司。android上的onCreate(hitungfinalbulanacitivity.java:55)。应用程序。活动在android上执行创建(Activity.java:7009)。应用程序。活动在android上执行创建(Activity.java:7000)。应用程序。仪器仪表。android上的callActivityOnCreate(Instrumentation.java:1214)。应用程序。ActivityThread。在android上执行LaunchActivity(ActivityThread.java:2731)。应用程序。ActivityThread。handleLaunchActivity(ActivityThread.java:2856)
只需将您的结果放在文本视图中
myDb = transaksiOperations.addAllValues(MonthSpinner.getSelectedItem().toString(), YearSpinner.getSelectedItem().toString());
result.setText(myDb+""); // add this line to set text
如果要更改微调器项目选择的textview值。将上述代码置于onItemSelected中。
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
问题内容: 我正在做一些报告,我想获取特定月份(例如2014年1月)中的所有日期,以及执行此“ SQL”时的日期: 我想得到这个清单: 如果我这样做“ SQL”: 我想得到这个清单: 如果我这样做“ SQL”: 我想得到这个清单: 这有可能吗,还是我应该自己为下一个100年绘制日期表:) 问题答案: 这是此问题的mysql / java解决方案。 创建表语句: Java代码: 我使用此sql获取日
例子: 例如:String str=“11/20”(MM/yy)希望通过在Java中以上述格式传递字符串来获取月份名称和年份(例如:11月/20)
我想得到两年之间的所有月份,以及两年之间的所有月份,他们的所有数据都将相加,以得到每年的销售额。 以下是我的表格截图: 截图 例如,我想获得2016年至2017年的年销售额,我需要将名称中包含2016年和2017年的所有列相加,以获得年销售额。我知道这张表不是正常的或正常的。但是这张桌子不是我的。 以下是获取两个日期之间月份的示例代码:
问题内容: 我对Javascript不太了解,我发现的其他问题与日期操作有关,不仅是在需要时获取信息。 目的 我希望获得以下格式的日期: 2011年1月27日星期四17:42:21打印 到目前为止,我得到以下信息: 我现在需要知道如何获取星期几和一年中的月份(它们的名称)。 有没有一种简单的方法可以做到这一点,或者我应该考虑使用可以简单地使用和索引到正确值的数组? 问题答案: 是的,您需要数组。
问题内容: 我需要像’Jan 2008’这样的SQL Server中日期时间的月份+年。我按月,年对查询进行分组。我已经搜索并找到了datepart,convert等功能,但是似乎没有一个有用的功能。我在这里想念什么吗?有这个功能吗? 问题答案: 如果您想让它们以字符串形式返回,则应采用这种格式; 这是其他格式选项