import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View.*;
import android.widget.*;
import android.view.View;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.MenuItem;
import android.view.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* EditText txt=(EditText)findViewById(R.id.edittext1);
EditText txt1=(EditText)findViewById(R.id.edittext2);
registerForContextMenu(txt);
registerForContextMenu(txt1); */
Button btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
LayoutInflater factory=LayoutInflater.from(MainActivity.this);
View myview=factory.inflate(R.layout.view,null);
Dialog dialog=new AlertDialog.Builder(MainActivity.this)
.setTitle("請登錄")
.setView(myview)
.setPositiveButton("確定", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog,int which)
{
}
})
.create();
dialog.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/* @Override
public void onCreateContextMenu(ContextMenu menu,View Source,ContextMenu.ContextMenuInfo menuinfo)
{
MenuInflater inflater=new MenuInflater(this);
inflater.inflate(R.menu.context,menu);
} */
}
edittext1和edittext2是在另一個布局文件裡的(用作自定義對話框),我把程序中注釋的那部分注釋掉,就沒有問題,但是去了注釋,程序就出現問題了,在運行的時候logcat就出現了java.lang.NuLLPointerException這個問題,但是我找不到是哪裡出錯?求大神指教
EditText txt=(EditText)findViewById(R.id.edittext1);執行這句話的時候,程序會去activity_main布局中查找ID為edittext1的控件,但是你這個布局中沒有,so。。。
如果想操作領導的布局,則要用LayoutInflater,你可以百度一下用法