This is my XML Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/simple_sales_inventory_using_android"
android:textColor="@color/colorAccent" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/ed1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:importantForAutofill="no" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/product_name" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/ed2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/price" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/ed3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/quantity" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/txtsub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/colorPrimaryDark"
android:ems="10"
android:enabled="false"
android:textColor="@string/fff" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subtotal" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/txtpay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/colorPrimaryDark"
android:ems="10"
android:textColor="@string/fff" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/payment" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/txtbal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@color/colorPrimaryDark"
android:ems="10"
android:enabled="false"
android:textColor="@string/fff" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/balance" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:text="@string/add" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableLayout
android:id="@+id/tb1"
android:layout_width="match_parent"
android:layout_height="360dp"
android:stretchColumns="*">
<TableRow
android:id="@+id/tbrow1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/product_name"
android:textAlignment="center" />
<TextView
android:id="@+id/t2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/price"
android:textAlignment="center" />
<TextView
android:id="@+id/t3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qty"
android:textAlignment="center" />
<TextView
android:id="@+id/t4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/total"
android:textAlignment="center" />
</TableRow>
</TableLayout>
</LinearLayout>
</LinearLayout>
I do not see any errors in XML code or in Java Code.
This is my Java Code:
package com.example.simpleinventory;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<String> data = new ArrayList<>();
private ArrayList<String> data1 = new ArrayList<>();
private ArrayList<String> data2 = new ArrayList<>();
private ArrayList<String> data3 = new ArrayList<>();
EditText ed1,ed2,ed3,ed4,ed5,ed6;
Button b1;
public MainActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView (R.layout.activity_main);
ed1=findViewById(R.id.ed1);
ed2=findViewById(R.id.ed2);
ed3=findViewById(R.id.ed3);
ed4=findViewById(R.id.txtsub);
ed5=findViewById(R.id.txtpay);
ed6=findViewById(R.id.txtbal);
b1=findViewById(R.id.btn1);
ed5.addTextChangedListener (new TextWatcher () {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
int subtotal = Integer.parseInt(ed4.getText().toString());
int pay = Integer.parseInt(ed5.getText().toString());
int bal = pay - subtotal;
ed6.setText(String.valueOf(bal));
}
});
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
add();
}
});
}
public void add() {
int tot;
String prodname = ed1.getText().toString();
int price = Integer.parseInt(ed2.getText().toString());
int qty = Integer.parseInt(ed3.getText().toString());
tot = price*qty;
data.add(prodname);
data1.add(String.valueOf(price));
data2.add(String.valueOf(qty));
data3.add(String.valueOf(tot));
TableLayout table = findViewById(R.id.tb1);
TableRow row = new TableRow(this);
TextView t1 = new TextView(this);
TextView t2 = new TextView(this);
TextView t3 = new TextView(this);
TextView t4 = new TextView(this);
String total;
int sum =0;
for(int i=0; i<data.size(); i++)
{
String pname = data.get(i);
String prc = data1.get(i);
String qtyy = data2.get(i);
total = data3.get(i);
t1.setText(pname);
t2.setText(prc);
t3.setText(qtyy);
t4.setText(total);
sum = sum + Integer.parseInt(data3.get(i));
}
row.addView(t1);
row.addView(t2);
row.addView(t3);
row.addView(t4);
table.addView(row);
ed4.setText(String.valueOf(sum));
ed1.setText("");
ed2.setText("");
ed3.setText("");
ed1.requestFocus();
}
}
I'm getting 0 compile errors but I get a runtime error in Logcat.
Here is the error:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.simpleinventory/com.example.simpleinventory.MainActivity}: android.view.InflateException: Binary XML file line #88 in com.example.simpleinventory:layout/activity_main: Binary XML file line #88 in com.example.simpleinventory:layout/activity_main: Error inflating class EditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3271)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3410)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2017)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7403)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Caused by: android.view.InflateException: Binary XML file line #88 in com.example.simpleinventory:layout/activity_main: Binary XML file line #88 in com.example.simpleinventory:layout/activity_main: Error inflating class EditText
Caused by: android.view.InflateException: Binary XML file line #88 in com.example.simpleinventory:layout/activity_main: Error inflating class EditText
Caused by: android.content.res.Resources$NotFoundException: File #fff from drawable resource ID #0x7f0c001e: .xml extension required
at android.content.res.ResourcesImpl.loadComplexColorForCookie(ResourcesImpl.java:1195)
at android.content.res.ResourcesImpl.loadComplexColorFromName(ResourcesImpl.java:1013)
at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:1092)
at android.content.res.Resources.loadColorStateList(Resources.java:1062)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:599)
at android.widget.TextView.readTextAppearance(TextView.java:3961)
at android.widget.TextView.<init>(TextView.java:1064)
at android.widget.EditText.<init>(EditText.java:88)
at android.widget.EditText.<init>(EditText.java:84)
at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:74)
at androidx.appcompat.widget.AppCompatEditText.<init>(AppCompatEditText.java:69)
at androidx.appcompat.app.AppCompatViewInflater.createEditText(AppCompatViewInflater.java:209)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:127)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1551)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1602)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1061)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170)
at com.example.simpleinventory.MainActivity.onCreate(MainActivity.java:32)
at android.app.Activity.performCreate(Activity.java:7809)
2020-11-02 13:08:17.527 8788-8788/com.example.simpleinventory E/AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7798)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3246)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3410)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2017)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7403)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
you aren't setting your content at all, thus all findViewById
are returning null
...
add setContentView
method just after super.onCreate
call (and before all findViewById
s), point on your posted XML file ( R.layout.filename
)
This is reported from line 88 in the activity_main.xml file, I see that your textColor is refering to a string, can you verify that this part is correct.
android:textColor="@string/fff"
It should be a color ie :
android:textColor="@color/colorAccent"
Can you post your strings.xml?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.