2017-02-23 46 views
-1

привет,Прямое андроида почтового клиента при нажатии на кнопку

это единственный пункт Вид ListView. Я не хочу посылать по электронной почте клиенту при нажатии кнопки в фрагменте ниже. есть адрес: column в базе данных разборки. при нажатии кнопки он должен привести к отправке почтового клиента с этим конкретным адресом электронной почты этого элемента.

Я пробовал код, который не работает никому, пожалуйста, помогите?

import android.content.*; 
import android.graphics.*; 
import android.net.*; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.util.*; 
import android.view.View; 
import android.widget.*; 

import com.parse.*; 
import com.parse.ParseException; 
import com.squareup.picasso.*; 

import java.io.*; 
import java.net.*; 

public class SingleItemView extends AppCompatActivity { 

    String objectId; 
    protected TextView txtv; 
    protected TextView txtv1; 
    protected ImageView txtv2; 
    protected ImageView txtv3; 
    Button sendEmail; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_single_item_view); 

     txtv =(TextView)findViewById(R.id.txt123); 
     txtv1 =(TextView)findViewById(R.id.txt1234); 
     txtv2 =(ImageView)findViewById(R.id.txt12345); 
     txtv3 =(ImageView)findViewById(R.id.txt123456); 
     Intent i =getIntent(); 
     objectId = i.getStringExtra("objectId"); 
     ParseQuery<ParseObject> query = ParseQuery.getQuery("_User"); 
     query.getInBackground(objectId, new GetCallback<ParseObject>() { 
      public void done(ParseObject object, ParseException e) { 
       if (e == null) { 
        String username = object.getString("firstname"); 
        txtv.setText(username); 
        String position = object.getString("position"); 
        txtv1.setText(position); 
        URL url = null; 
        try { 
         url = new URL("http://izi-dev.fr/fbc/assets/uploads/" + object.getString("image")); 

        } catch (MalformedURLException e1) { 
         e1.printStackTrace(); 
        } 
        Bitmap bmp = null; 
        try { 
         bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 

        txtv2.setImageBitmap(bmp); 


        URL url1 = null; 
        try { 
         url = new URL("http://izi-dev.fr/fbc/assets/uploads/" + object.getString("image")); 
        } catch (MalformedURLException e1) { 
         e1.printStackTrace(); 
        } 
        Bitmap bmp1 = null; 
        try { 
         bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 
        txtv3.setImageBitmap(bmp); 
       } else { 
        // something went wrong 
       } 

      } 
     }); 




     sendEmail = (Button) findViewById(R.id.button5); 
     sendEmail.setOnClickListener((View.OnClickListener) this); 
    } 



    public void onClick(View v) { 


     try{ 

      Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
      emailIntent.putExtra(Intent.EXTRA_EMAIL , "email"); 
      emailIntent.setType("text/plain"); // <-- HERE 
      startActivity(emailIntent); // <-- AND HERE 

     }finally { 

     } 

    } 





} 
+0

Проверьте этот стек [http://stackoverflow.com/questions/5596971/android-open-emailclient-programatically](http://stackoverflow.com/questions/5596971/android-open-emailclient-programatically) –

+0

@Andreas Constantinou привет спасибо, я уже проверил его. но нет возможности подключить кнопку. можете ли вы рассказать мне, как реализовать это в моем коде –

ответ

1

Попробуйте это:

sendEmail.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if(view.getId()==R.id.button5){ 
       Intent i = new Intent(Intent.ACTION_SEND); 
       i.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{ emailAddress }); 
       i.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
       i.putExtra(android.content.Intent.EXTRA_TEXT, text); 
       startActivity(Intent.createChooser(i, "Send email")); 
      } 

     } 
    }); 
+0

, когда я попробовал свой код (адрес электронной почты, адрес и текст) отображаются красным цветом. Сообщение об ошибке не может разрешить символ –

+0

@FaizalMohamed вам нужно импортировать надлежащие объекты. Тогда они больше не будут красными. – jakubbialkowski

+0

@FaizalMohamed это всего лишь шаблон. вы должны заменить параметры своими переменными/значениями. –

1

Вы неправильно установили прослушиватель кликов.

  1. Реализовать ClickListener

    public class SingleItemView extends AppCompatActivity implements View.OnClickListener

  2. Установите слушателя sendEmail.setOnClickListener(this);

  3. Использование аннотаций

    @Override public void onClick(View v)

Пожалуйста, попробуйте это.

+0

, можете ли вы рассказать о том, как реализовать имя столбца электронной почты в базе данных синтаксического анализа для моего кодового имени столбца электронной почты, является «email» –

+0

hi, @jakubbialkowski. пожалуйста, проверьте это, если вы можете http://stackoverflow.com/questions/42968587/android-email-client-receiver-email-id-empty-in-android-parse –

1

Как я могу правильно понял вашу проблему, я предлагаю вам использовать следующий плагин https://github.com/katzer/cordova-plugin-email-composer#examples. В основном с помощью этого плагина вы можете отправить HTML-копию тела с помощью нажатия кнопки.

cordova.plugins.email.open({ 
to:  '[email protected]', 
subject: 'Greetings', 
body: '<h1>Nice greetings from Leipzig</h1>', 
isHtml: true 
}); 

Для получения дополнительной информации ознакомьтесь, пожалуйста, с документацией. Надеюсь, я тебе помог.

+0

будет поддерживать эти идентификаторы электронной почты от разбор –