Android app 飛花令

飛花令App開發

APP效果圖

APP效果圖

過程

自己的第一個APP,也是第一個項目。APP的界面組件有textview(輸出區)、editview(輸入區)、

button,每個組件有個id,java程序通過id控制界面。下面是詳細介紹。

對於textview

TextView tv = (TextView) findViewById(R.id.tt);
tv.setText(ans);

對於button的操作

Button bt;
        bt = (Button)findViewById(R.id.button1);
        bt.setOnClickListener(new View.OnClickListener(){
            @Override //監聽點擊事件
            public void onClick(View v) 
            {
                //用戶點擊按鈕執行的語句
            }
        });

對於edittext的操作

 EditText inp =(EditText) findViewById(R.id.editText3);
                String st = inp.getText().toString();

對於文件的處理

InputStream context = getClass().getClassLoader().getResourceAsStream("assets/tang300.txt");
                    BufferedReader br = new BufferedReader(new InputStreamReader(context));
while ((ss = br.readLine()) != null)
{
}

對於顏色的處理

from:http://www.2cto.com/kf/201409/335648.html
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String str="這是設置TextView部分文字背景顏色和前景顏色的demo!";
        int bstart=str.indexOf("背景");
        int bend=bstart+"背景".length();
        int fstart=str.indexOf("前景");
        int fend=fstart+"前景".length();
        SpannableStringBuilder style=new SpannableStringBuilder(str); 
        style.setSpan(new BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
        style.setSpan(new ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 
        TextView tvColor=(TextView) findViewById(R.id.tv_color);
        tvColor.setText(style);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

對於上下滑動與左右滑動

tv.setMovementMethod(ScrollingMovementMethod.getInstance());
tv.setHorizontallyScrolling(true);

JAVA code

//  By SDU CS Zhao Yuxin
package com.example.asus.myapplication;

import android.preference.EditTextPreference;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.io.*;
import java.lang.*;
import java.util.Scanner;
import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;

import android.widget.Toast;

 public class MainActivi extends AppCompatActivity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt;
        bt = (Button)findViewById(R.id.button1);
        bt.setOnClickListener(new View.OnClickListener(){
            @Override //監聽點擊事件

            public void onClick(View v) {
                EditText inp =(EditText) findViewById(R.id.editText3);
                String st = inp.getText().toString();
                String ans = "";
                Scanner filescan,utlscan;
                int num = 0;
                try {

                    InputStream context = getClass().getClassLoader().getResourceAsStream("assets/tang300.txt");
                    BufferedReader br = new BufferedReader(new InputStreamReader(context));
                    String ss;
                    TextView tv = (TextView) findViewById(R.id.tt);
                    String delta = " ";
                    while ((ss = br.readLine()) != null)
                    {

                       if (ss.length() > 3)
                       if((ss.charAt(0) >= '0') &&(ss.charAt(0) <= '9'))
                        {
                              delta = " (" + ss + ")";
                            continue;
                        }
                        if (ss.contains(st)) {
                            if((ss.charAt(0) >= '0') &&(ss.charAt(0) <= '9'))
                                   continue;
                                num++;
                            ans = ans + num + "." + ss  + delta +"\n";
                           tv.setText("OMG");

                        }
                    }
                    int k = 0;
                    ans = "共搜索到" + num +"條結果.\n" + ans;
                    SpannableStringBuilder style=new SpannableStringBuilder(ans);
                    while( k >= 0)
                    {
                        int l=ans.indexOf(st, k);
                        int r = l + st.length();
                        if (l == -1)
                            break;
                        k = l + 1;
                        style.setSpan(new ForegroundColorSpan(Color.RED),l,r,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
                    }
                    tv.setMovementMethod(ScrollingMovementMethod.getInstance());
                    tv.setHorizontallyScrolling(true);

                    tv.setText(style);

                }
                catch (Exception e)
                {
                    TextView tv = (TextView) findViewById(R.id.tt);
                    ans = "抱歉,程序已崩潰,請聯繫程序開發者!!!";
                    tv.setText(ans);
                }
            }
        });
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章