Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 应用程序在发布时崩溃_Java_Android - Fatal编程技术网

Java 应用程序在发布时崩溃

Java 应用程序在发布时崩溃,java,android,Java,Android,下面是一个简单SQLite示例的主要活动。应用程序在启动时崩溃。以下是错误(粗体): 以下是Main活动的代码: package com.mytestfyp.ahmed.database; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.support.v7.app.AppCompatActivity; im

下面是一个简单SQLite示例的主要活动。应用程序在启动时崩溃。以下是错误(粗体):

以下是Main活动的代码:

package com.mytestfyp.ahmed.database;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity
{
    Button btnAddNewRecord;
    SQLiteHelper sQLiteHelper;

    android.widget.LinearLayout parentLayout;
    LinearLayout layoutDisplayPeople;

    TextView tvNoRecordsFound;
    private String rowID = null;

    private ArrayList<HashMap<String, String>> tableData = new ArrayList<HashMap<String, String>>();

    private class Holder
    {
        TextView tvFullName;
        String name;
        String age;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getAllWidgets();
        sQLiteHelper = new SQLiteHelper(MainActivity.this);
        bindWidgetsWithEvent();
        displayAllRecords();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK)
        {
            //firstname & lastname
            String name = data.getStringExtra(Constants.NAME);
            String age = data.getStringExtra(Constants.AGE);

            ContactModel contact = new ContactModel();
            contact.setName(name);
            contact.setAge(age);

            if (requestCode == Constants.ADD_RECORD)
            {
                sQLiteHelper.insertRecord(contact);
            }

            else if (requestCode == Constants.UPDATE_RECORD)
            {
                contact.setID(rowID);
                sQLiteHelper.updateRecord(contact);
            }

            displayAllRecords();

        }
    }

    private void getAllWidgets()
    {
        btnAddNewRecord = (Button) findViewById(R.id.btnAddNewRecord);
        parentLayout = (LinearLayout) findViewById(R.id.parentLayout);
        tvNoRecordsFound = (TextView) findViewById(R.id.tvNoRecordsFound);
    }

    private void bindWidgetsWithEvent()
    {
        btnAddNewRecord.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                onAddRecord();
            }
        });
    }

    private void onAddRecord()
    {
        Intent intent = new Intent(MainActivity.this, TableManipulationActivity.class);
        intent.putExtra(Constants.DML_TYPE, Constants.ADD_RECORD);
        startActivityForResult(intent, Constants.ADD_RECORD);
    }

    private void onUpdateRecord(String name, String age)
    {
        Intent intent = new Intent(MainActivity.this, TableManipulationActivity.class);
        intent.putExtra(Constants.NAME, name);
        intent.putExtra(Constants.AGE, age);
        intent.putExtra(Constants.DML_TYPE, Constants.UPDATE);
        startActivityForResult(intent, Constants.UPDATE_RECORD);
    }

    private void displayAllRecords()
    {
        LinearLayout inflateParentView;
        parentLayout.removeAllViews();

        ArrayList<ContactModel> contacts = sQLiteHelper.getAllRecords();

        if (contacts.size() > 0)
        {
            tvNoRecordsFound.setVisibility(View.GONE);
            ContactModel contactModel;

            for (int i = 0; i < contacts.size(); i++)
            {
                contactModel = contacts.get(i);

                final Holder holder = new Holder();
                final View view = LayoutInflater.from(this).inflate(R.layout.inflate_record, null);
                inflateParentView = (LinearLayout) findViewById(R.id.inflateParentView);
                holder.tvFullName = (TextView) view.findViewById(R.id.tvFullName);

                view.setTag(contactModel.getID());
                holder.name = contactModel.getName();
                holder.age = contactModel.getAge();

                String personData = holder.name + " " +holder.age;
                holder.tvFullName.setText(personData);

                final CharSequence[] items = {Constants.UPDATE, Constants.DELETE};

                inflateParentView.setOnLongClickListener(new View.OnLongClickListener()
                {
                    @Override
                    public boolean onLongClick(View v)
                    {
                        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                        builder.setItems(items, new DialogInterface.OnClickListener()
                        {
                            @Override
                            public void onClick(DialogInterface dialog, int which)
                            {
                                if (which == 0)
                                {
                                    rowID = view.getTag().toString();
                                    onUpdateRecord(holder.name, holder.age);
                                }

                                else
                                {
                                    AlertDialog.Builder deleteDialogOK = new AlertDialog.Builder(MainActivity.this);
                                    deleteDialogOK.setTitle("Delete Person ?");

                                    deleteDialogOK.setPositiveButton("OK", new DialogInterface.OnClickListener()
                                    {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which)
                                        {
                                            ContactModel contact = new ContactModel();
                                            contact.setID(view.getTag().toString());
                                            sQLiteHelper.deleteRecord(contact);
                                            displayAllRecords();
                                        }
                                    });
                                    deleteDialogOK.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
                                    {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which)
                                        {

                                        }
                                    });
                                    deleteDialogOK.show();
                                }
                            }
                        });
                        AlertDialog alertDialog = builder.create();
                        alertDialog.show();
                        return true;
                    }
                });
                parentLayout.addView(view);
            }
        }

        else
        {
            tvNoRecordsFound.setVisibility(View.VISIBLE);
        }
    }
}
package com.mytestfyp.ahmed.database;
导入android.app.AlertDialog;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.widget.Button;
导入android.widget.LinearLayout;
导入android.widget.TextView;
导入java.util.ArrayList;
导入java.util.HashMap;
公共类MainActivity扩展了AppCompatActivity
{
按钮btnAddNewRecord;
SQLiteHelper SQLiteHelper;
android.widget.linearlayoutparentlayout;
线性布局布局显示人员;
文本视图tvNoRecordsFound;
私有字符串rowID=null;
私有ArrayList tableData=新ArrayList();
私人阶级持有者
{
TextView-tvFullName;
字符串名;
弦年龄;
}
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getAllWidgets();
sQLiteHelper=新的sQLiteHelper(MainActivity.this);
bindWidgetsWithEvent();
显示所有记录();
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据)
{
super.onActivityResult(请求代码、结果代码、数据);
if(resultCode==RESULT\u OK)
{
//名与姓
字符串名称=data.getStringExtra(Constants.name);
字符串年龄=data.getStringExtra(Constants.age);
ContactModel contact=新ContactModel();
contact.setName(name);
接触设置(年龄);
if(requestCode==Constants.ADD_记录)
{
sQLiteHelper.insertRecord(contact);
}
else if(requestCode==Constants.UPDATE_记录)
{
contact.setID(rowID);
sQLiteHelper.updateRecord(联系人);
}
显示所有记录();
}
}
私有void getAllWidgets()
{
btnAddNewRecord=(按钮)findViewById(R.id.btnAddNewRecord);
parentLayout=(LinearLayout)findViewById(R.id.parentLayout);
tvNoRecordsFound=(TextView)findViewById(R.id.tvNoRecordsFound);
}
私有void bindwigetswithevent()
{
btnAddNewRecord.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
OnAddressRecord();
}
});
}
私有无效OnAddressRecord()
{
意向意向=新意向(MainActivity.this、TableOperationActivity.class);
intent.putExtra(Constants.DML_类型,Constants.ADD_记录);
startActivityForResult(意图、常数、添加记录);
}
私有void onUpdateRecord(字符串名称、字符串期限)
{
意向意向=新意向(MainActivity.this、TableOperationActivity.class);
intent.putExtra(Constants.NAME,NAME);
intent.putExtra(常数、年龄、年龄);
intent.putExtra(Constants.DML_类型,Constants.UPDATE);
startActivityForResult(意图、常数、更新记录);
}
私有void displayAllRecords()
{
线性布局充气式ParentView;
parentLayout.removeallview();
ArrayList contacts=sQLiteHelper.getAllRecords();
如果(contacts.size()>0)
{
tvNoRecordsFound.setVisibility(View.GONE);
接触模型;
对于(int i=0;ipackage com.mytestfyp.ahmed.database;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity
{
    Button btnAddNewRecord;
    SQLiteHelper sQLiteHelper;

    android.widget.LinearLayout parentLayout;
    LinearLayout layoutDisplayPeople;

    TextView tvNoRecordsFound;
    private String rowID = null;

    private ArrayList<HashMap<String, String>> tableData = new ArrayList<HashMap<String, String>>();

    private class Holder
    {
        TextView tvFullName;
        String name;
        String age;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        getAllWidgets();
        sQLiteHelper = new SQLiteHelper(MainActivity.this);
        bindWidgetsWithEvent();
        displayAllRecords();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK)
        {
            //firstname & lastname
            String name = data.getStringExtra(Constants.NAME);
            String age = data.getStringExtra(Constants.AGE);

            ContactModel contact = new ContactModel();
            contact.setName(name);
            contact.setAge(age);

            if (requestCode == Constants.ADD_RECORD)
            {
                sQLiteHelper.insertRecord(contact);
            }

            else if (requestCode == Constants.UPDATE_RECORD)
            {
                contact.setID(rowID);
                sQLiteHelper.updateRecord(contact);
            }

            displayAllRecords();

        }
    }

    private void getAllWidgets()
    {
        btnAddNewRecord = (Button) findViewById(R.id.btnAddNewRecord);
        parentLayout = (LinearLayout) findViewById(R.id.parentLayout);
        tvNoRecordsFound = (TextView) findViewById(R.id.tvNoRecordsFound);
    }

    private void bindWidgetsWithEvent()
    {
        btnAddNewRecord.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                onAddRecord();
            }
        });
    }

    private void onAddRecord()
    {
        Intent intent = new Intent(MainActivity.this, TableManipulationActivity.class);
        intent.putExtra(Constants.DML_TYPE, Constants.ADD_RECORD);
        startActivityForResult(intent, Constants.ADD_RECORD);
    }

    private void onUpdateRecord(String name, String age)
    {
        Intent intent = new Intent(MainActivity.this, TableManipulationActivity.class);
        intent.putExtra(Constants.NAME, name);
        intent.putExtra(Constants.AGE, age);
        intent.putExtra(Constants.DML_TYPE, Constants.UPDATE);
        startActivityForResult(intent, Constants.UPDATE_RECORD);
    }

    private void displayAllRecords()
    {
        LinearLayout inflateParentView;
        parentLayout.removeAllViews();

        ArrayList<ContactModel> contacts = sQLiteHelper.getAllRecords();

        if (contacts.size() > 0)
        {
            tvNoRecordsFound.setVisibility(View.GONE);
            ContactModel contactModel;

            for (int i = 0; i < contacts.size(); i++)
            {
                contactModel = contacts.get(i);

                final Holder holder = new Holder();
                final View view = LayoutInflater.from(this).inflate(R.layout.inflate_record, null);
                inflateParentView = (LinearLayout) findViewById(R.id.inflateParentView);
                holder.tvFullName = (TextView) view.findViewById(R.id.tvFullName);

                view.setTag(contactModel.getID());
                holder.name = contactModel.getName();
                holder.age = contactModel.getAge();

                String personData = holder.name + " " +holder.age;
                holder.tvFullName.setText(personData);

                final CharSequence[] items = {Constants.UPDATE, Constants.DELETE};

                inflateParentView.setOnLongClickListener(new View.OnLongClickListener()
                {
                    @Override
                    public boolean onLongClick(View v)
                    {
                        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                        builder.setItems(items, new DialogInterface.OnClickListener()
                        {
                            @Override
                            public void onClick(DialogInterface dialog, int which)
                            {
                                if (which == 0)
                                {
                                    rowID = view.getTag().toString();
                                    onUpdateRecord(holder.name, holder.age);
                                }

                                else
                                {
                                    AlertDialog.Builder deleteDialogOK = new AlertDialog.Builder(MainActivity.this);
                                    deleteDialogOK.setTitle("Delete Person ?");

                                    deleteDialogOK.setPositiveButton("OK", new DialogInterface.OnClickListener()
                                    {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which)
                                        {
                                            ContactModel contact = new ContactModel();
                                            contact.setID(view.getTag().toString());
                                            sQLiteHelper.deleteRecord(contact);
                                            displayAllRecords();
                                        }
                                    });
                                    deleteDialogOK.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
                                    {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which)
                                        {

                                        }
                                    });
                                    deleteDialogOK.show();
                                }
                            }
                        });
                        AlertDialog alertDialog = builder.create();
                        alertDialog.show();
                        return true;
                    }
                });
                parentLayout.addView(view);
            }
        }

        else
        {
            tvNoRecordsFound.setVisibility(View.VISIBLE);
        }
    }
}
<?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:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <ScrollView
        android:id="@+id/scrollViewDisplay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/layoutDisplayPeople"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="@string/people"
                    android:textColor="@color/color_black"
                    android:textSize="25sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/tvNoRecordsFound"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="15dp"
                    android:layout_marginTop="15dp"
                    android:gravity="center"
                    android:text="@string/nrf"
                    android:textColor="@color/color_black"
                    android:textSize="15sp" />

                <LinearLayout
                    android:id="@+id/parentLayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical"/>

            </LinearLayout>

        </LinearLayout>

    </ScrollView>

    <Button
        android:id="@+id/btnAddNewRecord"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/color_blue"
        android:text="@string/add"
        android:textColor="@color/color_white"
        android:textStyle="bold" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <LinearLayout
        android:id="@+id/inflateParentView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">

        <TextView
            android:id="@+id/tvFullName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:layout_marginStart="15dp"
            android:layout_weight="1"
            android:text="@string/name"
            android:textSize="15sp"
            android:gravity="start"
            android:textColor="@color/color_black"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/color_grey"/>

</LinearLayout>
inflateParentView = (LinearLayout) findViewById(R.id.inflateParentView);
inflateParentView = (LinearLayout) view.findViewById(R.id.inflateParentView);