我是pretty的新Android和 NFC
。我工作的一个 NFC
相关应用作为一个大学项目,从标签读取数据,并列出它们。虽然我能够做到这一点,我现在面临的问题与意图
其中,我应该到邮件列表用户的按钮点击。
有人能告诉我在哪里,我错了,并有详细的一步一步的方式帮助。非常非常感谢..!
这里的 WebServiceActivity
:
公共类WebServiceActivity延伸活动{
意向意图= getIntent();
串studlist = intent.getStringExtra(studlist);
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.webservice);
TextView的mailtext =(TextView中)findViewById(R.id.students);
TextView的mailbody =(TextView中)findViewById(R.id.emailtext);
mailbody.setText(这是清单Tranport跟踪今日:\ N+ studlist);
按钮发送=(按钮)findViewById(R.id.emailsendbutton);
send.setOnClickListener(新OnClickListener(){
@覆盖
公共无效的onClick(视图查看){
Log.i(发送电子邮件,);
的String [] TO = {h.trivedi04@gmail.com};
的String [] CC = {h.trivedi04@gmail.com,harshit.trivedi22@gmail.com};
意图emailIntent =新的意图(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse(电子邮件地址:));
emailIntent.setType(text / plain的);
emailIntent.putExtra(Intent.EXTRA_EMAIL,TO);
emailIntent.putExtra(Intent.EXTRA_CC,CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT,学生交通运输轨道为今天);
emailIntent.putExtra(Intent.EXTRA_TEXT,studlist);
尝试 {
startActivity(Intent.createChooser(emailIntent,发送邮件...));
完();
Log.i(说完发送电子邮件......,);
}赶上(android.content.ActivityNotFoundException前){
Toast.makeText(WebServiceActivity.this,
没有安装电子邮件客户端。,Toast.LENGTH_SHORT).show();
}
}
});
}
}
和主要活动TransportActivity有:
按钮webServiceButton =(按钮)this.findViewById(R.id.webServiceButton);
webServiceButton.setOnClickListener(新android.view.View.OnClickListener()
{
公共无效的onClick(视图查看){
意向意图=新的意图(view.getContext(),WebServiceActivity.class);
intent.putExtra(studlist,students.getText()的toString());
startActivity(意向);
}
});
这里的LogCat中的问题:
05-01 21:37:31.267:E / AndroidRuntime(27758):致命异常:主要
05-01 21:37:31.267:E / AndroidRuntime(27758):java.lang.RuntimeException的:无法实例活动ComponentInfo {com.harshit.studenttranstrack / com.harshit.studenttranstrack.WebServiceActivity}:显示java.lang.NullPointerException
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2229)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.app.ActivityThread.access $ 700(ActivityThread.java:165)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1326)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.os.Handler.dispatchMessage(Handler.java:99)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.os.Looper.loop(Looper.java:137)
05-01 21:37:31.267:E / AndroidRuntime(27758):在android.app.ActivityThread.main(ActivityThread.java:5455)
05-01 21:37:31.267:E / AndroidRuntime(27758):在java.lang.reflect.Method.invokeNative(本机方法)
05-01 21:37:31.267:E / AndroidRuntime(27758):在java.lang.reflect.Method.invoke(Method.java:525)
05-01 21:37:31.267:E / AndroidRuntime(27758):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1209)
05-01 21:37:31.267:E / AndroidRuntime(27758):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
05-01 21:37:31.267:E / AndroidRuntime(27758):在dalvik.system.NativeStart.main(本机方法)
05-01 21:37:31.267:E / AndroidRuntime(27758):由:显示java.lang.NullPointerException
。05-01 21:37:31.267:E / AndroidRuntime(27758):在com.harshit.studenttranstrack.WebServiceActivity< INIT>(WebServiceActivity.java:22)
05-01 21:37:31.267:E / AndroidRuntime(27758):在java.lang.Class.newInstanceImpl(本机方法)
解决方案
您不能 getIntent()
在的onCreate()
。还有根本没有可用的在这一点上的意图。我相信,任何需要背景下也是如此。
在的onCreate设置这些()
方法
字符串studlist = this.getIntent()getStringExtra(studlist)。
I am pretty new to both android and NFC
. I am working on an NFC
related application as a college project that reads the data from tags and lists them. Although I am able to do so, I am facing problems with intent
where I am supposed to mail this list to user on button click.
Can someone please tell me where I am going wrong and help with a detailed step-by-step approach. Huge thanks..!!
Here's the WebServiceActivity
:
public class WebServiceActivity extends Activity {
Intent intent = getIntent();
String studlist = intent.getStringExtra("studlist");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webservice);
TextView mailtext = (TextView) findViewById(R.id.students);
TextView mailbody = (TextView) findViewById(R.id.emailtext);
mailbody.setText("Here is the list for Tranport Tracking For Today: \n" + studlist);
Button send=(Button) findViewById(R.id.emailsendbutton);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Log.i("Send email", "");
String[] TO = {"h.trivedi04@gmail.com"};
String[] CC = {"h.trivedi04@gmail.com", "harshit.trivedi22@gmail.com"};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_CC, CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Student Transport Track For Today");
emailIntent.putExtra(Intent.EXTRA_TEXT, studlist);
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.i("Finished sending email...", "");
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(WebServiceActivity.this,
"There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
});
}
}
And the main activity TransportActivity has:
Button webServiceButton = (Button)this.findViewById(R.id.webServiceButton);
webServiceButton.setOnClickListener(new android.view.View.OnClickListener()
{
public void onClick(View view) {
Intent intent = new Intent( view.getContext(), WebServiceActivity.class);
intent.putExtra("studlist", students.getText().toString());
startActivity(intent);
}
});
Here's the LogCat for the problem:
05-01 21:37:31.267: E/AndroidRuntime(27758): FATAL EXCEPTION: main
05-01 21:37:31.267: E/AndroidRuntime(27758): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.harshit.studenttranstrack/com.harshit.studenttranstrack.WebServiceActivity}: java.lang.NullPointerException
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2229)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2359)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.app.ActivityThread.access$700(ActivityThread.java:165)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1326)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.os.Handler.dispatchMessage(Handler.java:99)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.os.Looper.loop(Looper.java:137)
05-01 21:37:31.267: E/AndroidRuntime(27758): at android.app.ActivityThread.main(ActivityThread.java:5455)
05-01 21:37:31.267: E/AndroidRuntime(27758): at java.lang.reflect.Method.invokeNative(Native Method)
05-01 21:37:31.267: E/AndroidRuntime(27758): at java.lang.reflect.Method.invoke(Method.java:525)
05-01 21:37:31.267: E/AndroidRuntime(27758): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
05-01 21:37:31.267: E/AndroidRuntime(27758): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
05-01 21:37:31.267: E/AndroidRuntime(27758): at dalvik.system.NativeStart.main(Native Method)
05-01 21:37:31.267: E/AndroidRuntime(27758): Caused by: java.lang.NullPointerException
05-01 21:37:31.267: E/AndroidRuntime(27758): at com.harshit.studenttranstrack.WebServiceActivity.<init>(WebServiceActivity.java:22)
05-01 21:37:31.267: E/AndroidRuntime(27758): at java.lang.Class.newInstanceImpl(Native Method)
解决方案
You can't getIntent()
before onCreate()
.There's simply no Intent available at that point. I believe the same is true for anything that requires a Context.
Set these in onCreate()
method
String studlist = this.getIntent().getStringExtra("studlist");