Java 插入值的问题。安卓工作室

Java 插入值的问题。安卓工作室,java,android,Java,Android,我在向数据库中插入值时遇到问题。我仍在寻找问题,但我无能为力。当我按下“插入”按钮时,应用程序停止并关闭。Php脚本还可以。我不知道问题出在哪里,所以我在那里贴了两个班。谢谢你提供的信息 SecondPan.java: public class SecondPan extends AppCompatActivity implements AdapterView.OnItemClickListener { private Spinner sspnOption6, sspn2; EditText

我在向数据库中插入值时遇到问题。我仍在寻找问题,但我无能为力。当我按下“插入”按钮时,应用程序停止并关闭。Php脚本还可以。我不知道问题出在哪里,所以我在那里贴了两个班。谢谢你提供的信息

SecondPan.java:

public class SecondPan extends AppCompatActivity implements AdapterView.OnItemClickListener {
private Spinner sspnOption6, sspn2;

EditText umowa,nazwa,kategorie,opis,zabezpieczenia,dane;
String czy_dane, transfer;
专用按钮btn_插入

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

    Spinner sspn2 ;

    Spinner sspnOption6 ;



    umowa = (EditText) findViewById(R.id.scnd_txt1);
    nazwa = (EditText) findViewById(R.id.scnd_txt2);
    kategorie = (EditText) findViewById(R.id.scnd_txt3);
    opis = (EditText) findViewById(R.id.scnd_tx4);
    zabezpieczenia = (EditText) findViewById(R.id.scnd_tx6);
    dane = (EditText) findViewById(R.id.scnd_tx7);


    sspnOption6 = findViewById(R.id.sspn);
    ArrayAdapter<CharSequence> FirstAdapter = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.tab1));
    FirstAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sspnOption6.setAdapter(FirstAdapter);


    sspn2=findViewById(R.id.sspn2);
    ArrayAdapter<CharSequence> Secondadapter = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.transfer));
    Secondadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sspn2.setAdapter(Secondadapter);
     czy_dane = sspn2.getSelectedItem().toString();

    transfer = sspnOption6.getSelectedItem().toString();


}
public void onItemClick(AdapterView<?> parent, View view, int position, long l) {
    String text = parent.getItemAtPosition(position).toString();
    Toast.makeText(parent.getContext(), text, Toast.LENGTH_SHORT).show();



}




public void OnInsert(View view ) {
    String str_czy_dane = sspn2.getSelectedItem().toString();
    String str_umowa = umowa.getText().toString();
    String str_nazwa = nazwa.getText().toString();
    String str_kategorie = kategorie.getText().toString();
    String str_opis = opis.getText().toString();
    String str_transfer  = sspnOption6.getSelectedItem().toString();
    String str_zabezpieczenia = zabezpieczenia.getText().toString();
    String str_dane = dane.getText().toString();
    String type = "insert";
    BackgroundWorker backgroundWorker = new BackgroundWorker(this);
    backgroundWorker.execute(type, str_czy_dane,str_umowa, str_nazwa, str_kategorie, str_opis,str_transfer, str_zabezpieczenia, str_dane);
}
}试试这个:

从onCreate()中的
SecondPan.java类中删除以下代码行


堆栈跟踪中的错误消息说明了什么?原因是:java.lang.NullPointerException:尝试在com.example.logowanie.SecondPan.OnInsert(SecondPan.java:75)上的空对象引用上调用虚拟方法“java.lang.Object android.widget.Spinner.getSelectedItem()”。哇,已经添加了值,但提交后没有“添加了值”,但代码如下屏幕所示:您到底想实现什么?我只想让窗口显示警报“数据已添加”。无论如何,感谢您的帮助,我已经用了两天的时间来处理这两行代码了!
public class BackgroundWorker extends AsyncTask<String,Void,String> {
Context context;
AlertDialog alertDialog;

BackgroundWorker (Context ctx) {
    context = ctx;
}
@Override
protected String doInBackground(String... params) {
    String type = params[0];
    String login_url = "http://10.0.2.2/login.php";
    String register_url="http://10.0.2.2/register.php";
    String insert_url = "http://10.0.2.2/wspol_adm.php";
    String login_admin_url= "http://10.0.2.2/login_adm.php";
    String admin_url="http://10.0.2.2/admin.php";
        try {
            String czy_dane = params[1];
            String umowa = params[2];
            String nazwa = params[3];
            String kategorie = params[4];
            String opis = params[5];
            String transfer = params[6];
            String zabezpieczenia = params[7];
            String dane = params[8];

            URL url = new URL (insert_url);
            HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            httpURLConnection.setDoInput(true);
            OutputStream outputStream = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
            String post_data = URLEncoder.encode("czy_dane","UTF-8")+"="+URLEncoder.encode(czy_dane,"UTF-8")+"&"+
                    URLEncoder.encode("umowa","UTF-8")+"="+URLEncoder.encode(umowa,"UTF-8")+"&"
            +URLEncoder.encode("nazwa","UTF-8")+"="+URLEncoder.encode(nazwa,"UTF-8")+"&"
            +URLEncoder.encode("kategorie","UTF-8")+"="+URLEncoder.encode(kategorie,"UTF-8")+"&"
            +URLEncoder.encode("opis","UTF-8")+"="+URLEncoder.encode(opis,"UTF-8")+"&"
            +URLEncoder.encode("transfer","UTF-8")+"="+URLEncoder.encode(transfer,"UTF-8")+"&"
            +URLEncoder.encode("zabezpieczenia","UTF-8")+"="+URLEncoder.encode(zabezpieczenia,"UTF-8")+"&"
                    +URLEncoder.encode("dane","UTF-8")+"="+URLEncoder.encode(dane,"UTF-8");
            bufferedWriter.write(post_data);
            bufferedWriter.flush();
            bufferedWriter.close();
            outputStream.close();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")) ;
            String result="";
            String line="";
            while((line = bufferedReader.readLine())!=null) {
                result+= line;
            }
            bufferedReader.close();
            inputStream.close();
            httpURLConnection.disconnect();
            return result;
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
protected void onPreExecute() {
    alertDialog = new AlertDialog.Builder(context).create();
    alertDialog.setTitle("Login status");


}

@Override
protected void onPostExecute(String result) {
    if(result.equals("User login success")) {

        Intent intent = new Intent(context, SecondPan.class);
        context.startActivity(intent);
    }
    if(result.equals("Admin login success")){

        Intent intent2 = new Intent(context, AdminPanel.class);
        context.startActivity(intent2);
    }
    else {
        alertDialog.setMessage(result);
        alertDialog.show();
    }

}

@Override
protected void onProgressUpdate(Void... values) {
    super.onProgressUpdate(values);
}
Spinner sspn2 ;

Spinner sspnOption6 ;