程式說明:
1. 輸入兩個整數值
2. 列出兩個整數值範圍內所有的質數於 ListView 中
<PrimeNumbers.java>
1: package com.android.primenumbers;
2:
3: import java.util.ArrayList;
4:
5: import android.app.Activity;
6: import android.content.Context;
7: import android.os.Bundle;
8: import android.view.View;
9: import android.view.View.OnClickListener;
10: import android.view.inputmethod.InputMethodManager;
11: import android.widget.ArrayAdapter;
12: import android.widget.Button;
13: import android.widget.EditText;
14: import android.widget.ListAdapter;
15: import android.widget.ListView;
16: import android.widget.TextView;
17:
18: public class PrimeNumbers extends Activity {
19:
20: private int startNo, endNo;
21: private TextView textviewCnt;
22: private EditText edittextStartNo, edittextEndNo;
23: private Button btnRun, btnExit;
24: private ListView listviewResult;
25: private ListAdapter laSimple1;
26: private ArrayList<Integer> listItems = new ArrayList<Integer>();
27: /** Called when the activity is first created. */
28: @Override
29: public void onCreate(Bundle savedInstanceState) {
30: super.onCreate(savedInstanceState);
31: setContentView(R.layout.main);
32: findViews();
33: setListeners();
34: }
35:
36: private void findViews(){
37: edittextStartNo = (EditText) findViewById(R.id.startnoEditText);
38: edittextEndNo = (EditText) findViewById(R.id.endnoEditText);
39: btnRun = (Button) findViewById(R.id.runBtn);
40: btnExit = (Button) findViewById(R.id.exitBtn);
41: textviewCnt = (TextView) findViewById(R.id.cntTextView);
42: listviewResult = (ListView) findViewById(R.id.resultListView);
43: }
44:
45: private void setListeners(){
46: btnRun.setOnClickListener(new View.OnClickListener() {
47: public void onClick(View v) {
48: findPrimeNumbers();
49: showResults();
50: hideSoftKeyboard();
51: }
52: });
53:
54: btnExit.setOnClickListener(new OnClickListener(){
55: public void onClick(View v) {
56: android.os.Process.killProcess(android.os.Process.myPid());
57: }
58: });
59: }
60:
61: private void findPrimeNumbers() {
62: int i, j;
63: boolean flag;
64: startNo = Integer.valueOf(edittextStartNo.getText().toString());
65: endNo = Integer.valueOf(edittextEndNo.getText().toString());
66: listItems.clear();
67: for (i = startNo; i <= endNo ; i++) {
68: flag = true;
69: for (j = 2; j < i ; j++) {
70: if ( ( i % j ) == 0 ) {
71: flag = false;
72: break;
73: }
74: }
75: if (flag) {
76: listItems.add(i);
77: }
78: }
79: }
80:
81: private void showResults(){
82: laSimple1 = new ArrayAdapter<Integer>( this,
83: R.layout.my_list_row,
84: listItems);
85: listviewResult.setAdapter(laSimple1);
86: textviewCnt.setText("質數共:"+listItems.size()+"個");
87: }
88:
89: private void hideSoftKeyboard(){
90:
91: InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
92:
93: imm.hideSoftInputFromWindow(getWindow().peekDecorView().getWindowToken(), 0);
94:
95: }
96: }
<main.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3: android:id="@+id/LinearLayout1"
4: android:layout_width="fill_parent"
5: android:layout_height="fill_parent"
6: android:gravity="center"
7: android:orientation="vertical" >
8:
9: <TextView
10: android:id="@+id/textView2"
11: android:layout_width="match_parent"
12: android:layout_height="wrap_content"
13: android:gravity="center"
14: android:text="@string/strTitle"
15: android:textAppearance="?android:attr/textAppearanceMedium" />
16:
17: <LinearLayout
18: android:id="@+id/linearLayout1"
19: android:layout_width="match_parent"
20: android:layout_height="match_parent" >
21:
22: <LinearLayout
23: android:id="@+id/linearLayout3"
24: android:layout_width="wrap_content"
25: android:layout_height="wrap_content"
26: android:orientation="vertical" >
27:
28: <EditText
29: android:id="@+id/startnoEditText"
30: android:layout_width="wrap_content"
31: android:layout_height="wrap_content"
32: android:hint="@string/strInput1"
33: android:inputType="number" />
34:
35: <EditText
36: android:id="@+id/endnoEditText"
37: android:layout_width="wrap_content"
38: android:layout_height="wrap_content"
39: android:hint="@string/strInput2"
40: android:inputType="number" />
41:
42: <LinearLayout
43: android:id="@+id/linearLayout4"
44: android:layout_width="wrap_content"
45: android:layout_height="match_parent" >
46:
47: <Button
48: android:id="@+id/runBtn"
49: android:layout_width="wrap_content"
50: android:layout_height="wrap_content"
51: android:text="@string/strRun" />
52:
53: <Button
54: android:id="@+id/exitBtn"
55: android:layout_width="wrap_content"
56: android:layout_height="wrap_content"
57: android:text="@string/strExit" />
58: </LinearLayout>
59:
60: <TextView
61: android:id="@+id/cntTextView"
62: android:layout_width="wrap_content"
63: android:layout_height="wrap_content"
64: android:layout_marginTop="23dp"
65: android:text="@string/strResult"
66: android:textSize="16dp" />
67:
68: <TextView
69: android:id="@+id/textView1"
70: android:layout_width="wrap_content"
71: android:layout_height="wrap_content"
72: android:text="@string/strCopyright" />
73: </LinearLayout>
74:
75: <LinearLayout
76: android:id="@+id/linearLayout5"
77: android:layout_width="wrap_content"
78: android:layout_height="wrap_content"
79: android:layout_marginLeft="15dp"
80: android:orientation="vertical" >
81:
82: <ListView
83: android:id="@+id/resultListView"
84: android:layout_width="wrap_content"
85: android:layout_height="wrap_content" >
86: </ListView>
87: </LinearLayout>
88:
89: </LinearLayout>
90:
91: </LinearLayout>
<my_list_row.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <TextView xmlns:android="http://schemas.android.com/apk/res/android"
3: android:layout_width="match_parent"
4: android:layout_height="match_parent" >
5: </TextView>
<strings.xml>
1: <?xml version="1.0" encoding="utf-8"?>
2: <resources>
3:
4: <string name="hello">Hello World, PrimeNumbers!</string>
5: <string name="app_name">質數</string>
6: <string name="strInput1">請輸入範圍起始值</string>
7: <string name="strInput2">請輸入範圍終止值</string>
8: <string name="strRun">執行</string>
9: <string name="strExit">離開</string>
10: <string name="strResult">質數共:0個\n</string>
11: <string name="strTitle">【質數 Prime Numbers】\n</string>
12: <string name="strCopyright">Copyright : Terry Wu</string>
13:
14: </resources>
沒有留言:
張貼留言