如何邮件按钮点击TextView的数据与Android的意图是什么?意图、按钮、邮件、数据

2023-09-12 05:53:45 作者:始于初见

我是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+ stu​​dlist);

        按钮发送=(按钮)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(本机方法)
 
Android点击按钮切换窗口Activity

解决方案

您不能 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");

 
精彩推荐
图片推荐