我有一个MenuActivity,其中有一个显示餐厅菜单的列表视图,它使用了名为FoodAdapter的适配器。它起作用了,我正在尝试制作菜单的细节,如果你点击菜单,那么带有食物细节的FoodDetailActivity就会出现。
单击“MenuActivity ListView”>“FoodDetailActivity with food”。
但是问题出现了,当我点击listview菜单上的项目时,空白屏幕出现了大约500ms,然后回到了MainActivity。我的假设是,可能是我在MenuActivity.java上的这段代码的putExtra意图中做了一些错误的事情,或者我的手机不支持布局。
orderListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?>parent, View view, int position, long id) {
Intent i = new Intent(MenuActivity.this, FoodDetailActivity.class);
Food currentFood = foods.get(position);
//Log.e("FOOD NAME", currentFood.getFoodName());
i.putExtra("name", currentFood.getFoodName());
i.putExtra("image", currentFood.getmImageResource());
i.putExtra("price", currentFood.getFoodPrice());
i.putExtra("type", currentFood.getType());
startActivityForResult(i, REQUEST_CODE);
}下面是完整的代码MenuActivity.java
public class MenuActivity extends AppCompatActivity {
public static final int REQUEST_CODE = 1;
FoodAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
//arraylist to make model array from Food class
final ArrayList<Food> foods = new ArrayList<>();
foods.add(new Food("AYAM BAKAR", "Ayam Bakar pak budi", R.drawable.a1, 50000));
foods.add(new Food("AYAM GORENG", "Ayam Bakar pak budi", R.drawable.a2, 50000));
foods.add(new Food("AYAM REBUS", "Ayam Bakar pak budi", R.drawable.a3, 50000));
foods.add(new Food("AYAM KECAP", "Ayam Bakar pak budi", R.drawable.a4, 50000));
adapter = new FoodAdapter(this, foods);
ListView orderListView = (ListView) findViewById(R.id.order_list_view);
orderListView.setAdapter(adapter);
orderListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?>parent, View view, int position, long id) {
Intent i = new Intent(MenuActivity.this, FoodDetailActivity.class);
Food currentFood = foods.get(position);
//Log.e("FOOD NAME", currentFood.getFoodName());
i.putExtra("name", currentFood.getFoodName());
i.putExtra("image", currentFood.getmImageResource());
i.putExtra("price", currentFood.getFoodPrice());
i.putExtra("type", currentFood.getType());
startActivityForResult(i, REQUEST_CODE);
}
});
}这是FoodDetailActivity.java
public class FoodDetailActivity extends AppCompatActivity {
private int item = 0;
private int price = 0;
TextView sumTextView;
TextView priceTotalTextView;
TextView txtName, txtQuantity, txtPrice;
Button btnAdd, btnCart;
public static SQLiteOpenHelper sqLiteHelper;
public static String DATABASENAME = "cartDB.db";
public static String TABLENAME = "cart";
public static String ID = "id";
public static String NAME = "name";
public static String QUANTITY = "quantity";
public static String PRICE = "price";
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_detail);
init();
String name = getIntent().getStringExtra("name");
String type1 = getIntent().getStringExtra("type");
int image;
image = getIntent().getIntExtra("image", -1);
price = getIntent().getIntExtra("price", -1);
//Log.e("SECOND ACTIVITY", name);
TextView nameTextView = (TextView) findViewById(R.id.food_name_text_view);
nameTextView.setText(name);
TextView type = (TextView) findViewById(R.id.type);
type.setText(type1);
ImageView imageView = (ImageView) findViewById(R.id.food_image);
imageView.setImageResource(image);
imageView.setVisibility(View.VISIBLE);
TextView priceTextView = (TextView) findViewById(R.id.price_detail_text_view);
priceTextView.setText(Integer.toString(price));
sumTextView = (TextView)findViewById(R.id.sum_text_view);
priceTotalTextView = (TextView) findViewById(R.id.price_total_text_view);
Button incrementButton = (Button) findViewById(R.id.increment_button);
incrementButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
increment();
}
});
Button decrementButton = (Button) findViewById(R.id.decrement_button);
decrementButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
decrement();
}
});
}
private void init(){
txtName = findViewById(R.id.food_name_text_view);
txtQuantity = findViewById(R.id.sum_text_view);
txtPrice = findViewById(R.id.price_total_text_view);
btnAdd = findViewById(R.id.order_button);
btnCart = findViewById(R.id.cart_button);
}
private void increment(){
item++;
sumTextView.setText(Integer.toString(item));
priceTotalTextView.setText(Integer.toString(sumOfProduct(price)));
}
private void decrement(){
if (item<1){
Toast.makeText(this, "Maaf Order Minimal 1", Toast.LENGTH_SHORT).show();
return;
}
item = item-1;
sumTextView.setText(Integer.toString(item));
priceTotalTextView.setText(Integer.toString(sumOfProduct(price)));
}
private int sumOfProduct(int price){
return item*price;
}
}这是错误日志,我不知道应该显示哪一个:
2019-12-26 18:11:21.255 24053-24053/? E/libc: Access denied finding property "persist.vendor.sys.activitylog"
2019-12-26 18:11:21.992 24053-24122/com.rifinew.rumahpohon E/OpenGLRenderer: Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
2019-12-26 18:11:22.025 24053-24122/com.rifinew.rumahpohon E/ion: ioctl c0044901 failed with code -1: Invalid argument
//when i click on listview to get detail listview activity
2019-12-26 18:12:58.736 24187-24187/? E/libc: Access denied finding property "persist.vendor.sys.activitylog"
2019-12-26 18:12:58.745 24187-24203/? E/inew.rumahpoho: Failed to send DDMS packet REAQ to debugger (-1 of 20): Broken pipe
2019-12-26 18:12:59.140 24187-24257/? E/OpenGLRenderer: Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
2019-12-26 18:12:59.197 24187-24257/? E/ion: ioctl c0044901 failed with code -1: Invalid argument
<br><br>
//and this one too
2019-12-26 18:33:59.065 26392-26392/? E/libc: Access denied finding property "persist.vendor.sys.activitylog"
2019-12-26 18:34:02.040 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: >>> msg's executing time is too long
2019-12-26 18:34:02.040 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: Blocked msg = { when=-2s949ms what=110 target=android.app.ActivityThread$H obj=AppBindData{appInfo=ApplicationInfo{98d9e1e com.rifinew.rumahpohon}} } , cost = 2929 ms
2019-12-26 18:34:02.040 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: >>>Current msg List is:
2019-12-26 18:34:02.042 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: Current msg <1> = { when=-2s945ms what=159 target=android.app.ActivityThread$H obj=ClientTransaction hashCode, mActivityToken = android.os.BinderProxy@ada6ff }
2019-12-26 18:34:02.043 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: Current msg <2> = { when=-2s688ms what=149 target=android.app.ActivityThread$H obj=android.os.BinderProxy@ada6ff }
2019-12-26 18:34:02.043 26392-26392/com.rifinew.rumahpohon E/ANR_LOG: >>>CURRENT MSG DUMP OVER<<<
2019-12-26 18:34:02.545 26392-26426/com.rifinew.rumahpohon E/OpenGLRenderer: Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
2019-12-26 18:34:02.605 26392-26426/com.rifinew.rumahpohon E/ion: ioctl c0044901 failed with code -1: Invalid argument
//begining of the crash
--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rifinew.rumahpohon, PID: 26392
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rifinew.rumahpohon/com.rifinew.rumahpohon.FoodDetailActivity}: android.view.InflateException: Binary XML file line #149: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3181)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3318)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:226)
at android.app.ActivityThread.main(ActivityThread.java:7212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:956)
Caused by: android.view.InflateException: Binary XML file line #149: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:784)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:900)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:861)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:903)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:861)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:903)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:861)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.rifinew.rumahpohon.FoodDetailActivity.onCreate(FoodDetailActivity.java:40)
at android.app.Activity.performCreate(Activity.java:7378)
at android.app.Activity.performCreate(Activity.java:7369)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3161)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3318)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:113)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:71)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:226)
at android.app.ActivityThread.main(ActivityThread.java:7212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:956)XML activity_food_detail.xml有点复杂,我认为把代码放在这里不太好。我做错了什么?
发布于 2019-12-26 20:04:37
问题是我不知道为什么,但是XML
<!-- <view
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@color/colorPrimary"/>-->绘制一条小线的视图标签不知何故在我的手机上发生了错误崩溃,感谢@unownsp帮助我解决这个错误
https://stackoverflow.com/questions/59480737
复制相似问题