android Advanced Send-Mail

废话少说,直入主题~!

结构如图:

android Advanced Send-Mail

Send_Email_AddFileActivity.java代码:

public class Send_Email_AddFileActivity extends Activity {

	@Override

	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		// TODO Auto-generated method stub

		if (requestCode == 0) {

			final Uri uriRet = data.getData();

			if (uriRet != null) {

				try {

					Cursor c = managedQuery(uriRet, null, null, null, null);

					c.moveToFirst();

					String strName = c.getString(c

							.getColumnIndexOrThrow(People.NAME));

					String[] PROJECTION = new String[] {

							Contacts.ContactMethods._ID,

							Contacts.ContactMethods.KIND,

							Contacts.ContactMethods.DATA };

					Cursor newcur = managedQuery(

							Contacts.ContactMethods.CONTENT_URI,

							PROJECTION,

							Contacts.ContactMethods.PERSON_ID + "=\'"

									+ c.getLong(c.getColumnIndex(People._ID))

									+ "\'", null, null);

					startManagingCursor(newcur);

					String email = "";

					if (newcur.moveToFirst()) {

						email = newcur.getString(newcur

								.getColumnIndex(Contacts.ContactMethods.DATA));

						receive_txt.setText(email);

					}



				} catch (Exception e) {

					// TODO: handle exception

					Toast.makeText(Send_Email_AddFileActivity.this,

							e.toString(), 1000).show();

				}



			}

		}

		super.onActivityResult(requestCode, resultCode, data);

	}



	private EditText receive_txt;

	private EditText subject_txt;

	private EditText file_txt;

	private EditText content_txt;

	private Button send_btn;

	private Button select_btn;

	private Button people_btn;

	ArrayList<String> al = null;

	String path = "//sdcard";



	/** Called when the activity is first created. */

	@Override

	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.main);

		findAll();

		bind();

	}



	public void findAll() {

		receive_txt = (EditText) this.findViewById(R.id.receive_txt);

		subject_txt = (EditText) this.findViewById(R.id.subject_txt);

		file_txt = (EditText) this.findViewById(R.id.file_txt);

		content_txt = (EditText) this.findViewById(R.id.content_txt);

		send_btn = (Button) this.findViewById(R.id.send_btn);

		select_btn = (Button) this.findViewById(R.id.select_btn);

		people_btn = (Button) this.findViewById(R.id.people_btn);

	}



	public void bind() {

		send_btn.setOnClickListener(mylistener);

		select_btn.setOnClickListener(mylistener);

		people_btn.setOnClickListener(mylistener);

	}



	private View.OnClickListener mylistener = new OnClickListener() {



		public void onClick(View v) {

			// TODO Auto-generated method stub

			if (v.getId() == R.id.send_btn) {

				if (!(receive_txt.getText().toString().trim().equals(""))) {

					if (isEmail(receive_txt.getText().toString().trim())) {

						try {

							Intent mailIntent = new Intent(

									android.content.Intent.ACTION_SEND);



							mailIntent.setType("plain/test");

							String[] strEmailReciver = new String[] { receive_txt

									.getText().toString() };

							String[] strEmailCC = new String[] { file_txt

									.getText().toString() };

							String strEmailSubject = subject_txt.getText()

									.toString();

							String strEmailBody = content_txt.getText()

									.toString();

							mailIntent.putExtra(

									android.content.Intent.EXTRA_EMAIL,

									strEmailReciver);

							mailIntent

									.putExtra(android.content.Intent.EXTRA_CC,

											strEmailCC);

							mailIntent.putExtra(

									android.content.Intent.EXTRA_SUBJECT,

									strEmailSubject);

							mailIntent.putExtra(

									android.content.Intent.EXTRA_TEXT,

									strEmailBody);

							startActivity(Intent

									.createChooser(mailIntent, "发送"));

							Toast.makeText(Send_Email_AddFileActivity.this,

									"发送成功", Toast.LENGTH_LONG).show();



						} catch (Exception ex) {

							Toast.makeText(Send_Email_AddFileActivity.this,

									"发送失败", Toast.LENGTH_LONG).show();

						}

					}

				}

			} else if (v.getId() == R.id.select_btn) {



				LayoutInflater lif = getLayoutInflater();

				View pop = lif.inflate(R.layout.popwindow, null);

				final PopupWindow pw = new PopupWindow(pop, 300, 300, true);

				LinearLayout ll = (LinearLayout) pop.findViewById(R.id.popid);

			    final LinearLayout lly=(LinearLayout) findViewById(R.id.lly);

			    lly.setEnabled(false);

			    ll.setBackgroundColor(Color.BLUE);

				al = new ArrayList<String>();

				File f = new File(path);

				if (f.exists()) {

					readdirectory(path);

				}

				if (al.size() > 0) {

					for (int x = 0; x < al.size(); x++) {

						final TextView atv = new TextView(

								Send_Email_AddFileActivity.this);

						atv.setText(al.get(x));

						ll.addView(atv);

						atv.setOnClickListener(new OnClickListener() {



							public void onClick(View v) {

								// TODO Auto-generated method stub

								file_txt.setText(atv.getText().toString());

								lly.setEnabled(true);

								pw.dismiss();

							}

						});

					}

				}

				pw.showAtLocation(select_btn, Gravity.CENTER, 0, 0);



			} else if (v.getId() == R.id.people_btn) {

				Uri uri = Uri.parse("content://contacts/people");

				Intent intent = new Intent(Intent.ACTION_PICK, uri);

				startActivityForResult(intent, 0);



			}

		}

	};



	public void readfile(String path) {

		File f = new File(path);

		if (f.exists()) {

			if (!f.isDirectory()) {

				al.add(f.getPath());

			}

		}

	}



	public void readdirectory(String path) {

		File f = new File(path);

		if (f.exists()) {

			String[] filelist = f.list();

			for (int i = 0; i < filelist.length; i++) {

				File fe = new File(path + "\\" + filelist[i]);

				if (fe.isFile()) {

					readfile(path + "\\" + filelist[i]);

				} else if (fe.isDirectory()) {

					readdirectory(path + "\\" + filelist[i]);

				}

			}



		}

	}



	public static boolean isEmail(String strEmail) {

		String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";



		Pattern p = Pattern.compile(strPattern);

		Matcher m = p.matcher(strEmail);

		return m.matches();

	}

main.xml代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

	android:orientation="vertica" android:layout_width="fill_parent"

	android:layout_height="fill_parent" android:id="@+id/lly">

	<LinearLayout android:layout_height="wrap_content"

		android:id="@+id/linearLayout1" android:layout_width="fill_parent">

		<Button android:text="Button" android:id="@+id/send_btn"

			android:layout_width="wrap_content" android:layout_height="fill_parent"></Button>

		<LinearLayout android:layout_height="fill_parent"

			android:id="@+id/linearLayout2" android:orientation="vertical"

			android:layout_width="fill_parent">

			<LinearLayout android:layout_height="wrap_content"

				android:id="@+id/linearLayout3" android:layout_width="fill_parent">

				<TextView android:text="receive:" android:id="@+id/textView1"

					android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

				<EditText android:id="@+id/receive_txt"

					android:layout_weight="1" android:layout_height="wrap_content"

					android:layout_width="fill_parent">

					<requestFocus></requestFocus>

				</EditText>

				<Button android:text="people" android:layout_width="wrap_content"

					android:layout_height="wrap_content" android:id="@+id/people_btn" />

			</LinearLayout>

			<LinearLayout android:layout_height="wrap_content"

				android:id="@+id/linearLayout4" android:layout_width="fill_parent">

				<TextView android:text="subject:" android:id="@+id/textView2"

					android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

				<EditText android:id="@+id/subject_txt"

					android:layout_weight="1" android:layout_height="wrap_content"

					android:layout_width="fill_parent">

					<requestFocus></requestFocus>

				</EditText>

			</LinearLayout>

			<LinearLayout android:layout_height="wrap_content"

				android:id="@+id/linearLayout5" android:layout_width="fill_parent">

				<TextView android:text="file:" android:id="@+id/textView3"

					android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

				<EditText android:id="@+id/file_txt" android:layout_weight="1"

					android:layout_height="wrap_content" android:layout_width="wrap_content"></EditText>

				<Button android:text="select" android:layout_width="wrap_content"

					android:layout_height="wrap_content" android:id="@+id/select_btn" />

			</LinearLayout>

		</LinearLayout>

	</LinearLayout>

	<EditText android:id="@+id/content_txt" android:layout_height="fill_parent"

		android:layout_width="fill_parent" android:inputType="textMultiLine"></EditText>

</LinearLayout>

 

popwindow.xml代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

  xmlns:android="http://schemas.android.com/apk/res/android"

  android:orientation="vertical"

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:id="@+id/popid"

  >

    

</LinearLayout>

androidmanifest.xml代码:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="Send_Email_AddFile.Jason"

      android:versionCode="1"

      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="4" />

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>



    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".Send_Email_AddFileActivity"

                  android:label="@string/app_name">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

你可能感兴趣的:(Advanced)