我正在开发一个应用程序,其中我遇到了异常,我知道这是我正在做的愚蠢或小错误,但你的帮助可能会让我失望并让我开心:
public class Demo extends Activity
{
Button btnDemo;
Thread t;
AlertDialog alertDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo);
btnDemo = (Button) findViewById(R.id.btnDemo);
btnDemo.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
t=new Thread() {
public void run() {
tryDemo();
}
};
t.start();
}
});
}
public void tryDemo()
{
try
{
int i = 5;
if(i == 0 || i == 1)
{
Intent intent_success = new Intent(getApplicationContext(), Main_Activity.class);
startActivity(intent_success);
}
else
{
alertDialog = new AlertDialog.Builder(getApplicationContext()).create();
alertDialog.setTitle("Demo");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//here you can add functions
} });
alertDialog.setIcon(R.drawable.icon);
alertDialog.setMessage("Sorry!! Either Username or Password Invalid");
alertDialog.show();
}
}
catch(Exception e)
{
Log.i("Demo", "Demo - Demo Exception");
}
}
}
在上面的代码中,如果我在 tryDemo 函数中设置 i=0 或 i=1,则它运行成功,但如果我将其设置为 0 或 1 以外的值,则它会引发异常,如“Demo - Demo Exception”。
我不确定,但我认为异常来自getApplicationContext()。
更新:- 1
我得到的异常如下:
更新:- 2 如果我删除“线程”部分并在按钮单击事件中编写整个函数代码,并用 v.getContext() 替换“getApplicationContext()”,那么它运行成功............ .但我想在线程中实现它。
请帮助我并抓住我...
谢谢