我通过意图调用另一个活动的活动并通过bundle(字符串值)传递值但是它无法启动活动这是代码和日志cat错误请帮我解决这个问题
if(v==btndate){
Intent i2=new Intent(accounts.this,calcok.class);
String frm=edtdate1.getText().toString();
String to=edtdate2.getText().toString();
Log.e("acc->calcok","inbetween intents");
Log.e("from date",frm);
Log.e("to date",to);
i2.putExtra("from",(String)frm);
i2.putExtra("to",(String) to);
startActivity(i2);
}
package dlp.android.digichronicle;
import java.io.IOException;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class calcok extends Activity{
DBHandandler myDbHelper=new DBHandandler(this);
SQLiteDatabase Mydatabase;
float inc,exp;
String s1,s2,s3;
String stattionlist,DBname="widgets";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.myDbHelper = new DBHandandler(this);
Bundle b=getIntent().getExtras();
System.out.println("Got from acc"+b);
String frm=b.getString("frm");
String to=b.getString("to");
if(b!=null)
{
Log.e("frm",frm);
Log.e("to",to);
Log.e("Entered accounts->" +"CALCCCC","");
try {
FetchingData();
myDbHelper.openDataBase();
Mydatabase = myDbHelper.getWritableDatabase();
String s =second.ge;
if(s.equalsIgnoreCase("accounts")){
ArrayList<Float> inclist=new ArrayList<Float>();
ArrayList<Float> explist=new ArrayList<Float>();
try{
explist =myDbHelper.calc(Mydatabase,"exp",frm,to);
inclist =myDbHelper.calc1(Mydatabase,frm,to);
}
catch(Exception e){
inclist.add(500.0f);
explist.add(320.0f);
}
float inc= sum(inclist);
float exp= sum(explist);
float sav=inc-exp;
if(sav<0){
s3="Deficit Amount";
}
else
{
s3=Float.toString(sav);
}
s1=Float.toString(inc);
s2=Float.toString(exp);
}
Toast.makeText(getApplicationContext(), "GOt Details",Toast.LENGTH_LONG).show();
} catch (SQLException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
myDbHelper.close();
Mydatabase.close();
Intent i3=new Intent(calcok.this,accounts.class);
i3.putExtra("inc",s1);
i3.putExtra("exp",s2);
i3.putExtra("sav",s3);
startActivity(i3);
}
}
public static float sum(ArrayList<Float> list){
if(list==null || list.size()<1)
return 0;
float sum = 0;
for(Float i: list)
sum = sum+i;
return sum;
}
private void FetchingData() {
try { myDbHelper.onCreateDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelper.openDataBase();
Mydatabase = myDbHelper.getWritableDatabase();
}catch(SQLException sqle){
throw sqle;
}
}
}
11-24 20:52:26.318: I/System.out(842): cursortrue
11-24 20:52:29.267: D/Testing(842): Checkpoint 2
11-24 20:52:29.647: D/dalvikvm(842): GC_FOR_ALLOC freed 9093K, 24% free 30100K/39303K, paused 91ms
11-24 20:52:29.817: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:29.837: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:32.247: D/dalvikvm(842): GC_CONCURRENT freed 655K, 21% free 31399K/39303K, paused 5ms+23ms
11-24 20:52:32.337: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:32.366: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:32.767: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:32.797: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:35.757: E/acc->calcok(842): inbetween intents
11-24 20:52:35.847: I/System.out(842): Got from accBundle[mParcelledData.dataSize=64]
11-24 20:52:35.847: D/AndroidRuntime(842): Shutting down VM
11-24 20:52:35.858: W/dalvikvm(842): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
11-24 20:52:35.897: E/AndroidRuntime(842): FATAL EXCEPTION: main
11-24 20:52:35.897: E/AndroidRuntime(842): java.lang.RuntimeException: Unable to start activity ComponentInfo{dlp.android.digichronicle/dlp.android.digichronicle.calcok}: java.lang.NullPointerException: println needs a message
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.ActivityThread.access$600(ActivityThread.java:123)
11-24 20:52:35.897: E/AndroidRuntime(842): at and roid.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.os.Looper.loop(Looper.java:137)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.ActivityThread.main(ActivityThread.java:4424)
11-24 20:52:35.897: E/AndroidRuntime(842): at java.lang.reflect.Method.invokeNative(Native Method)
11-24 20:52:35.897: E/AndroidRuntime(842): at java.lang.reflect.Method.invoke(Method.java:511)
11-24 20:52:35.897: E/AndroidRuntime(842): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-24 20:52:35.897: E/AndroidRuntime(842): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-24 20:52:35.897: E/AndroidRuntime(842): at dalvik.system.NativeStart.main(Native Method)
11-24 20:52:35.897: E/AndroidRuntime(842): Caused by: java.lang.NullPointerException: println needs a message
11-24 20:52:35.897: E/AndroidRuntime(842): at android.util.Log.println_native(Native Method)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.util.Log.e(Log.java:231)
11-24 20:52:35.897: E/AndroidRuntime(842): at dlp.android.digichronicle.calcok.onCreate(calcok.java:30)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.Activity.performCreate(Activity.java:4465)
11-24 20:52:35.897: E/AndroidRuntime(842): at an droid.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
11-24 20:52:35.897: E/AndroidRuntime(842): ... 11 more
11-24 20:52:36.297: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:36.317: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:36.567: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:36.576: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:37.117: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:37.137: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:37.619: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:37.647: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:38.147: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:38.177: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:38.697: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:38.707: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:39.217: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:39.237: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:39.737: I/dalvikvm(842): threadid=3: reacting to signal 3
11-24 20:52:39.757: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:39.877: I/Process(842): Sending signal. PID: 842 SIG: 9
11-24 20:52:41.037: I/dalvikvm(857): threadid=3: reacting to signal 3
11-24 20:52:41.107: I/dalvikvm(857): Wrote stack traces to '/data/anr/traces.txt'
11-24 20:52:41.246: D/dalvikvm(857): GC_FOR_ALLOC freed 70K, 3% free 9121K/9347K, paused 68ms
答案 0 :(得分:3)
frm
活动中的null
为calcok
(在Logcat中非常明确地说明了这一点。)
11-24 20:52:35.897: E/AndroidRuntime(842): Caused by: java.lang.NullPointerException: println needs a message
11-24 20:52:35.897: E/AndroidRuntime(842): at android.util.Log.println_native(Native Method)
11-24 20:52:35.897: E/AndroidRuntime(842): at android.util.Log.e(Log.java:231)
11-24 20:52:35.897: E/AndroidRuntime(842): at dlp.android.digichronicle.calcok.onCreate(calcok.java:30)
所以,我想这就是你收到额外内容的方式。尝试:
String frm = getIntent().getStringExtra("frm");
String to = getIntent().getStringExtra("to");
编辑:刚刚意识到您将额外的内容设为from
,并将其作为frm
接收。这是错误。
答案 1 :(得分:0)
在logcat中查看此行:引起:java.lang.NullPointerException:println需要一条消息。在某处您没有将任何打印消息传递给您的日志语句。 Plz检查所有日志语句增益。并确保您已将活动包含在AndroidManifest文件中。 在收到你错过的意图的同时。尝试按照建议接受意图。它肯定会得到解决。