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);
                }
            }
        });
    }

}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值