2017-04-21 6 views
0

Wenn ich i.setType("text/plain"); verwende, dann funktioniert meine Taste, aber wenn sie nicht verwendet wird, funktioniert sie nicht. Nach dem Klicken gibt es keine Optionen zum Öffnen einer App. Warum? Hilf mir bitte. HierWarum funktioniert die Schaltfläche nicht, wenn setType() nicht verwendet wird?

ist der Code für MainActivity:

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button bt = (Button) findViewById(R.id.bt); 
     bt.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(); 
       i.setAction(Intent.ACTION_SEND); 
       i.setType("text/plain"); 
       EditText et = (EditText) findViewById(R.id.et); 
       String text = et.getText().toString(); 
       i.putExtra(Intent.EXTRA_SUBJECT,"Email From Ankit's Own 
       Created App"); 
       i.putExtra(Intent.EXTRA_TEXT,text); 

       if (i.resolveActivity(getPackageManager()) != null) { 
        startActivity(i); 
       } 
      } 
     }); 
    } 
} 
+0

wo sind 'createChooser' ?? –

+0

warum fragen warum? wenn dein Code funktioniert? – faruk

Antwort

0

Sie sollten startActivity verwenden in folgender Weise:

      try { 
           startActivity(Intent.createChooser(emailIntent, 
             "Send email using...")); 
          } catch (android.content.ActivityNotFoundException ex) { 
           Toast.makeText(getActivity(), 
             "No email clients installed.", 
             Toast.LENGTH_SHORT).show(); 
          } 
0

Es wurde eine E-Mail-App benötigt, um Ihre Daten zu erhalten,

Ein detaillierteres Beispiel, um freigegebene Datei zu erhalten, können Sie es aussehen here

0

Versuchen Sie dies,

/* Create the Intent */ 

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

/* Fill it with Data */ 
emailIntent.setType("plain/text"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text"); 

/* Send it off to the Activity-Chooser */ 
context.startActivity(Intent.createChooser(emailIntent, "Send mail...")); 
+0

aber meine Abfrage war das, warum die Schaltfläche nicht ohne setType() -Methode arbeitet. –

Verwandte Themen