Java 使用edittext时出现NullPointer异常
我想将此van值存储在本地主机数据库中,但不幸的是它已停止工作,请帮助Java 使用edittext时出现NullPointer异常,java,android,exception,Java,Android,Exception,我想将此van值存储在本地主机数据库中,但不幸的是它已停止工作,请帮助 import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePa
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class UserOptions extends OnscreenActivity {
protected Button subButton;
EditText vNumber;
InputStream is=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionbar = getActionBar();
actionbar.hide();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
vNumber = (EditText)findViewById(R.id.editText1);
setContentView(R.layout.activity_user_options);
Spinner Schoolspin = (Spinner) findViewById(R.id.spinner1);
// Create an ArrayAdapter using the string array and a default spinner
// layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.school_names,
android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
Schoolspin.setAdapter(adapter);
Spinner stateSpin = (Spinner) findViewById(R.id.spinner2);
// Create an ArrayAdapter using the string array and a default spinner
// layout
ArrayAdapter<CharSequence> adapterstate = ArrayAdapter
.createFromResource(this, R.array.state,
android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapterstate
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
stateSpin.setAdapter(adapterstate);
Spinner citySpin = (Spinner) findViewById(R.id.spinner3);
// Create an ArrayAdapter using the string array and a default spinner
// layout
ArrayAdapter<CharSequence> cityadapter = ArrayAdapter
.createFromResource(this, R.array.City,
android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
cityadapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
citySpin.setAdapter(cityadapter);
subButton = (Button) findViewById(R.id.button1);
subButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
String van = ""+vNumber.getText().toString();
List<NameValuePair> nameValue = new ArrayList<NameValuePair>(1);
nameValue.add(new BasicNameValuePair("VAN", van));
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://10.0.2.2/tutorial.php");
httpPost.setEntity(new UrlEncodedFormEntity(nameValue));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity entity = httpResponse.getEntity();
is=entity.getContent();
String msg = "Data Entered Succesfully";
Toast.makeText(getApplicationContext(), msg,
Toast.LENGTH_LONG).show();
} catch (ClientProtocolException e) {
Log.e("ClientProtocol", "Log_Tag");
e.printStackTrace();
} catch (IOException e) {
Log.e("Log_Tag", "IOException");
e.printStackTrace();
}
Intent intent = new Intent(UserOptions.this,
OnscreenActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.user_options, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
像这样更改代码
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_options);
ActionBar actionbar = getActionBar();
actionbar.hide();
vNumber = (EditText)findViewById(R.id.editText1);
Spinner Schoolspin = (Spinner) findViewById(R.id.spinner1);
//Remaining code is as it is
}
setContentView()
需要在调用findviewbyid
之前。这就是编译器如何确定在哪里可以找到您的edittext
更改此中的顺序:
vNumber = (EditText)findViewById(R.id.editText1);
setContentView(R.layout.activity_user_options);
你需要把:
setContentView(R.layout.activity_user_options);
vNumber = (EditText)findViewById(R.id.editText1);
onCreate(Bundle)
是初始化活动的地方。最重要的是,在这里,您通常会使用定义UI的布局资源调用setContentView(view)
,并使用findViewById(int)
检索该UI中需要以编程方式交互的小部件
但是“id”中的错误,如果小部件来自java类而没有设置为contentview,是否可以获取id
您必须创建动态视图,然后不需要调用setcontentview
setContentView(R.layout.activity_user_options);
vNumber = (EditText)findViewById(R.id.editText1);
你能编辑上面的代码并告诉我哪里错了吗?无法在数据库中输入数据,但这是一个新问题,不是吗?这是我的php文件对不起,它与你原来的问题没有任何关系。使用相关代码询问新问题
setContentView(R.layout.activity_user_options);
vNumber = (EditText)findViewById(R.id.editText1);
setContentView(R.layout.activity_user_options);
vNumber = (EditText)findViewById(R.id.editText1);