飛花令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);
}
}
});
}
}