Я работаю над проектом в Java-Mail API, где у меня есть несколько полей и кнопка, когда я нажимаю кнопку, почта будет отправлена. Но проблема в том, что у меня есть класс, который расширяет фрагмент другого класса, который расширяет Activity, и я не знаю, как вставлять эти два класса.хотите использовать 2 класса сразу
Вот первый класс:
public class Contact_Fragment1 extends Fragment {
private Activity myActivity;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tabfragment_sendmail, container, false);
return v;
}
}
В tabfragment_sendmail
У меня есть несколько полей и кнопку, я хочу, чтобы выполнить ниже класса, когда кнопка нажата.
public class OutsideClass extends Activity implements View.OnClickListener {
Session session = null;
ProgressDialog pdialog = null;
Context context = null;
EditText reciep, sub, msg;
String rec, subject, textMessage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
Button login = (Button) findViewById(R.id.buttonSend);
reciep = (EditText) findViewById(R.id.etEmail);
sub = (EditText) findViewById(R.id.etSubject);
msg = (EditText) findViewById(R.id.etMessage);
login.setOnClickListener(this);
}
@Override
public void onClick(View view) {
rec = reciep.getText().toString();
subject = sub.getText().toString();
textMessage = msg.getText().toString();
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
session = Session.getDefaultInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("[email protected]", "xxxxxx");
}
});
pdialog = ProgressDialog.show(context, "", "Sending Mail....", true);
RetreiveFeedTask task = new RetreiveFeedTask();
task.execute();
}
class RetreiveFeedTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(rec));
message.setSubject(subject);
message.setContent(textMessage, "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String aVoid) {
pdialog.dismiss();
reciep.setText("");
msg.setText("");
sub.setText("");
Toast.makeText(getApplicationContext(), "Message Sent", Toast.LENGTH_LONG).show();
}
}
}
Может ли кто-нибудь помочь мне с этой проблемой?
По-прежнему отображается ошибка, говоря, что невозможно разрешить конструктор ........ –
попробуйте заменить 'this'' getActivity(); ' – BAAAZINGA
Спасибо, он работает ,,,, начал свою деятельность .. хотя я получил другая ошибка, я надеюсь, что смогу исправить это ..... –