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