私は例外を取得している 1 つのアプリケーションを開発しています。これは私がやっているばかげた、または小さな間違いであることはわかっていますが、あなたの助けが私を見つけて一日を過ごすかもしれません:
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 「スレッド」部分を削除し、ボタン クリック イベントに関数コード全体を記述し、「getApplicationContext()」を v.getContext() に置き換えた場合、正常に実行されます........ .しかし、THREAD内に実装したい。
私を助けて、私を捕まえてください...
ありがとう