나는이 포럼을 며칠간 읽었으며 나의 문제에 대한 답을 찾지 못했습니다.두 번째 Java 파일에서 토스트를 표시하는 방법은 무엇입니까?
Toast를 표시하려고 할 때 java.lang.NullPointerException을 가져 오는 데 문제가 있습니다.
내 안드로이드 응용 프로그램에는 MyWorkActivity.java가 주요 활동이고 Statistika.java는 내 데이터베이스의 데이터를 기반으로 일부 통계를 계산하기위한 것입니다.
내부 클래스 MyWorkActivity (공용 클래스 MyWorkActivity는 Activity 구현 OnClickListener를 확장 함) 메뉴 항목은 statistika입니다.
내가 그 항목을 누를 때 나는이 같은 statistika.java 데이터와 레이아웃 Statistika.xml을 보여주고 싶은 :
public class MyWorkActivity extends Activity implements OnClickListener
{
//Menu item statistika
else if(item.getItemId()==R.id.statistika)
{
//Layout statistika.xml
setContentView(R.layout.statistika);
Statistika nova_statistika = new Statistika();
nova_statistika.rsatiDanasJuceMjesec(sDatumZaPrikaz);
}
}
하지만 dbJuceDanas = this.openOrCreateDatabase(DatabaseInfo.IME_BAZE, MODE_PRIVATE,null);
에 내가 댓글을 달았하여 java.lang.NullPointerException을 받고있다 데이터베이스 부분 및 토스트 만 시도했지만 여전히 java.lang.NullPointerException 얻을. 다음
04-25 12:33:15.020: E/AndroidRuntime(927): FATAL EXCEPTION: main
04-25 12:33:15.020: E/AndroidRuntime(927): java.lang.NullPointerException
04-25 12:33:15.020: E/AndroidRuntime(927): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
04-25 12:33:15.020: E/AndroidRuntime(927): at android.widget.Toast.<init>(Toast.java:89)
04-25 12:33:15.020: E/AndroidRuntime(927): at android.widget.Toast.makeText(Toast.java:231)
04-25 12:33:15.020: E/AndroidRuntime(927): at myWork.amicus.ba.Statistika.rsatiDanasJuceMjesec(Statistika.java:69)
04-25 12:33:15.020: E/AndroidRuntime(927): at myWork.amicus.ba.MyWorkActivity.onOptionsItemSelected(MyWorkActivity.java:3028)
04-25 12:33:15.020: E/AndroidRuntime(927): at android.app.Activity.onMenuItemSelected(Activity.java:2205)
04-25 12:33:15.020: E/AndroidRuntime(927): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:748)
나는 시도했다 :
public class Statistika extends Activity
{
public void rsatiDanasJuceMjesec (String sDatumZaRacunanje)
{
Toast.makeText(getBaseContext(), "Toast is working! ", Toast.LENGTH_LONG).show();
//Računanje radnih sati za prikazani dan
// SQLiteDatabase dbJuceDanas = null;
// dbJuceDanas = this.openOrCreateDatabase(DatabaseInfo.IME_BAZE, MODE_PRIVATE,null);
//
// //Filtriranje rekordseta po datumu
// Cursor cJuceDanas = dbJuceDanas.rawQuery("SELECT * FROM " + DatabaseInfo.IME_TABELE + " WHERE " + DatabaseInfo.DATUM + " LIKE '%" + MyWorkActivity.sDatumZaPrikaz + "'", null);
//
// if (cJuceDanas !=null && cJuceDanas.getCount() > 0)
// {
// //Ako postoje upisi za datum trenutnog upisa
// int Column4 = cJuceDanas.getColumnIndex("r_vrijeme");
//
// //Sumiranje svih radnih vremena od danas
// fRVDanas=Float.valueOf(0);
// do
// {
// cJuceDanas.moveToFirst();
// fRVDanas=fRVDanas+cJuceDanas.getFloat(Column4);
//
// }while (cJuceDanas.moveToNext());
// }
}
}
이 로그 캣입니다 :
이
내 Statistika.java입니다Toast.makeText(this, "Toast is working! ", Toast.LENGTH_LONG).show();
Toast.makeText(Statistika.this, "Toast is working! ", Toast.LENGTH_LONG).show();
많은 다른 조합하지만 그렇지 않습니다 작업.
이해할 수 있듯이 문제는 문맥에 있습니다.
Statistika.java에서 토스트 메시지와 액세스 데이터베이스를 표시하려면 무엇을해야합니까?
레이아웃을 전환하는 대신 조각을 사용해 보았습니까? – dumazy
Y 주요 활동 자체에서 레이아웃을 설정하려고합니다. 의도를 통해 활동 (Statistika)을 시작하면 레이아웃을 설정할 수 있습니다. – Subburaj
문제가 해결되었는지 여부 ?? – Subburaj