Untitled
unknown
plain_text
9 months ago
8.5 kB
6
Indexable
package com.example.proba2;
public class Expense {
private String description;
private float amount;
private String category;
public Expense(String description, float amount, String category) {
this.description = description;
this.amount = amount;
this.category = category;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public float getAmount() {
return amount;
}
public void setAmount(float amount) {
this.amount = amount;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
package com.example.proba2;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
public class ExpenseAdapter extends ArrayAdapter<Expense> {
private Context context;
private ArrayList<Expense> expenseList;
public ExpenseAdapter(@NonNull Context context, ArrayList<Expense> expenses) {
super(context, R.layout.expense_item, expenses);
this.expenseList = expenses;
this.context = context;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View rowView = LayoutInflater.from(context).inflate(R.layout.expense_item, parent, false);
Expense expense = expenseList.get(position);
TextView descriptionView = rowView.findViewById(R.id.description);
TextView amountView = rowView.findViewById(R.id.amount);
TextView categoryView = rowView.findViewById(R.id.category);
descriptionView.setText(expense.getDescription());
amountView.setText(String.valueOf(expense.getAmount()));
categoryView.setText(expense.getCategory());
return rowView;
}
}
package com.example.proba2;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class ExpenseDetailsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_expense_details);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.cardView), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
TextView descriptionText=findViewById(R.id.expenseDescription);
TextView amountText=findViewById(R.id.expenseAmount);
TextView categoryText=findViewById(R.id.expenseCategory);
Intent intent=getIntent();
if (intent!=null){
String description=intent.getStringExtra("description");
Float amount=intent.getFloatExtra("amount",0);
String category=intent.getStringExtra("category");
descriptionText.setText(description);
amountText.setText(String.valueOf(amount));
categoryText.setText(category);
}
}
}package com.example.proba2;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private ArrayList<Expense> expenseList;
private ExpenseAdapter expenseAdapter;
private TextView totalPriceText;
private ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.cardView), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
list = findViewById(R.id.list);
totalPriceText = findViewById(R.id.total);
expenseList = new ArrayList<>();
expenseAdapter = new ExpenseAdapter(this, expenseList);
sharedPreferences = getSharedPreferences("PREFS_NAME", MODE_PRIVATE);
list.setAdapter(expenseAdapter);
loadExpense();
if (expenseList.isEmpty()) {
expenseDefault();
saveExpense();
}
totalPrice();
// Listaelemre kattintás
list.setOnItemClickListener((parent, view, position, id) -> {
Expense selectedExpense = expenseList.get(position);
Intent intent = new Intent(MainActivity.this, ExpenseDetailsActivity.class);
intent.putExtra("description", selectedExpense.getDescription());
intent.putExtra("amount", selectedExpense.getAmount());
intent.putExtra("category", selectedExpense.getCategory());
startActivity(intent);
});
}
private void expenseDefault() {
expenseList.add(new Expense("Groceries", 532.25f, "Food"));
expenseList.add(new Expense("Fuel", 132.25f, "Transport"));
expenseList.add(new Expense("Rent", 232.25f, "Housing"));
expenseList.add(new Expense("Electricity", 432.25f, "Utilities"));
}
private void saveExpense() {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
for (int i = 0; i < expenseList.size(); i++) {
editor.putString("description_" + i, expenseList.get(i).getDescription());
editor.putFloat("amount_" + i, expenseList.get(i).getAmount());
editor.putString("category_" + i, expenseList.get(i).getCategory());
}
editor.apply();
}
private void loadExpense() {
expenseList.clear();
int i = 0;
while (sharedPreferences.contains("description_" + i)) {
String description = sharedPreferences.getString("description_" + i, "");
float amount = sharedPreferences.getFloat("amount_" + i, 0);
String category = sharedPreferences.getString("category_" + i, "");
expenseList.add(new Expense(description, amount, category));
i++;
}
expenseAdapter.notifyDataSetChanged();
}
private void totalPrice() {
float result = 0;
for (Expense expense : expenseList) {
result += expense.getAmount();
}
totalPriceText.setText(String.valueOf(result));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == R.id.add) {
expenseList.add(new Expense("Random", 1, "Misc"));
saveExpense();
totalPrice();
expenseAdapter.notifyDataSetChanged();
return true;
} else if (id == R.id.delete) {
expenseList.clear();
saveExpense();
totalPrice();
expenseAdapter.notifyDataSetChanged();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Editor is loading...
Leave a Comment