Android基础小程序

1、简单的计数器

xml布局:
Activity代码:
public class MainActivity extends Activity {
    TextView tv;
    Button add,sub,reset;
    int count;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView) findViewById(R.id.tv);  //关联xml文件中的TextView
        add=(Button)findViewById(R.id.add);
        sub=(Button)findViewById(R.id.sub);
        reset=(Button)findViewById(R.id.reset);
        count=0;
        add.setOnClickListener(new View.OnClickListener(){  //Add按钮监听
            @Override
            public void onClick(View v) {
                count++;
                tv.setText("The total is "+count);
            }
        });
        sub.setOnClickListener(new View.OnClickListener(){ //Sub按钮监听
            @Override
            public void onClick(View v) {
                count--;
                tv.setText("The total is "+count);
            }
        });
        reset.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                count=0;
                tv.setText("The total is 0");
            }
        });
    }
}

2、起始界面的实现

xml布局:首先需添加一张背景图片至res/drawable中,接着在xml文件中添加
android:background="@drawable/文件名(无需后缀)"
Activity代码:
public class flash extends Activity{
    MediaPlayer mp; //引用MediaPlay实现音乐播放
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.flash);
        mp = MediaPlayer.create(this,R.raw.bgm);  //音乐文件存放路径为res/raw中(若无raw文件夹则创建)
        mp.start(); //音乐开始播放
        Thread timer = new Thread(){ //创建一个线程
            public void run(){
                try {
                    sleep(2000);  //起始界面存在2秒
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }finally {
                    Intent fl = new Intent("android.intent.action.MainMenu"); //采用Intent来启动主界面的Activity
                    startActivity(fl);
                }
            }

        };
        timer.start(); //线程启动
    }

    @Override
    protected void onPause() { //引用onPause()方法结束当前Activity
        super.onPause();
        mp.release();   //需释放,若不执行此操作,则会一直播放,直到结束进程为止
        finish();  //结束此Activity
    }
}

3、使用ListActivity创建列表菜单

效果图:


Activity代码:
public class MainMenu extends ListActivity { //继承ListActivity
    //创建菜单列表数组
    String classes[] = {"MainActivity","lifeActivity","TextPlay","Data","SharedPrefs","SimpleBrowser"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(MainMenu.this,android.R.layout.simple_list_item_1,classes));

    }
    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) { //重写onListItemClick()方法
        super.onListItemClick(l, v, position, id);
        String classStr = classes[position]; //记录菜单顺序
        try {
            Class ourClass = Class.forName("com.example.jason.myapplication."+classStr);
            Intent startA = new Intent(this,ourClass); //class名的方式指定Activity启动
            startActivity(startA);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

4、布局的简单设计

xml布局代码及视图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:hint="input text"
        android:ems="10"
        android:id="@+id/etCommand" />
<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:weightSum="100">
    <Button
        android:text="Try the command"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="20"
        android:id="@+id/btCommand" />

    <ToggleButton
        android:text="ToggleButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="80"
        android:id="@+id/tbStatus" />
</LinearLayout>
    <TextView
        android:text="TextView"
        android:textSize="30dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvResult" />
</LinearLayout>
Activity代码:
public class TextPlay extends Activity {
    EditText etCommand;
    ToggleButton tbStatus;
    Button btCommand;
    TextView tvResult;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.text_play);
        etCommand = (EditText)findViewById(R.id.etCommand);
        tbStatus = (ToggleButton)findViewById(R.id.tbStatus);
        btCommand = (Button)findViewById(R.id.btCommand);
        tvResult = (TextView)findViewById(R.id.tvResult);
        btCommand.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                String check = etCommand.getText().toString();
                tvResult.setText(check);
                String color = tvResult.getTextColors().toString(); //获取TextView中的字体颜色
                if(color.contentEquals("BLACK")==false){ //如果输入字体为“BLACK”
                    tvResult.setTextColor(Color.BLACK);  //设置字体颜色为黑色
                }
                if(check.contentEquals("left")){
                    tvResult.setGravity(Gravity.LEFT);  //设置TextView在布局中的左边
                }else if(check.contentEquals("right")){
                    tvResult.setGravity(Gravity.RIGHT);
                }else if(check.contentEquals("center")){
                    tvResult.setGravity(Gravity.CENTER);
                }else if(check.contentEquals("blue")){
                    tvResult.setTextColor(Color.BLUE);
                }else if(check.contentEquals("yellow")){
                    tvResult.setTextColor(Color.YELLOW);
                }else if(check.contains("haha")){  //如果输入字体含有“haha”
                    Random crazyNum = new Random(); //定义一个随机数
                    tvResult.setText("HAHA!!!");
                    tvResult.setTextSize(crazyNum.nextInt(100)); //设置一个[0—100)的伪随机数
                    //利用RGB设置随机颜色
                    tvResult.setTextColor(Color.rgb(crazyNum.nextInt(256),crazyNum.nextInt(256),crazyNum.nextInt(256)));
                    switch (crazyNum.nextInt(3)){
                        case 0:tvResult.setGravity(Gravity.LEFT);
                            break;
                        case 1:tvResult.setGravity(Gravity.RIGHT);
                            break;
                        case 2:tvResult.setGravity(Gravity.CENTER);
                            break;
                    }
                }else {
                    tvResult.setText("I can't recognize your command");
                }
            }
        });
        tbStatus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) { //设置开关按钮的监听事件
                if(tbStatus.isChecked()){  //按钮是否被打开
                    //如果打开,则设置为密码型输入文本
                    etCommand.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
                }else {
                    //否则,设置成文本型
                    etCommand.setInputType(InputType.TYPE_CLASS_TEXT);
                }
            }
        });

    }
}


5、Activity传递字符

xml布局采用相对布局,其代码与效果图:
(a)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/get_tv"
        android:layout_below="@+id/bSAFR"
        />

    <Button
        android:text="StartActivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bSA"
        android:layout_alignRight="@+id/etSend"
        android:layout_below="@+id/etSend"
        android:textAllCaps="false"
        />

    <Button
        android:text="StartForResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bSAFR"
        android:layout_toLeftOf="@id/bSA"
        android:layout_alignTop="@id/bSA"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:id="@+id/etSend"
        />
</RelativeLayout>
(b)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="How many people are there in our dormitory?"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvQuestion"
        android:textSize="20dp"
        />

    <RadioGroup
        android:id="@+id/rgAnswers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:text="four people"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rbFour"
             />

        <RadioButton
            android:text="five people"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rbFive"
             />

        <RadioButton
            android:text="six people"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rbSix"
            />
    </RadioGroup>

    <Button
        android:text="Return"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bReturn" />

    <TextView
        android:text=""
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tvOther" />
</LinearLayout>

Activity代码:
(a)
public class Data extends Activity implements View.OnClickListener {
    Button bsa,bsafr;
    EditText send;
    TextView tvGet;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.get);
        initialize(); //定义一个初始化的方法
    }

    private void initialize() {
        bsa = (Button)findViewById(R.id.bSA);
        bsafr = (Button)findViewById(R.id.bSAFR);
        send = (EditText)findViewById(R.id.etSend);
        tvGet = (TextView)findViewById(R.id.get_tv);
        bsa.setOnClickListener(this); //采用实现接口的方式监听点击
        bsafr.setOnClickListener(this);
    }



    @Override
    public void onClick(View v) {
        switch (v.getId()){ //获取按钮的ID
            case R.id.bSA:
                String s  = send.getText().toString(); //获取将要发送的字符
                Bundle basket = new Bundle(); //创建一个bundle
                basket.putString("breakfast",s); //bundle中附带一个字符串
                Intent it = new Intent(this,OpenedClass.class); //采用Intent跳转到名为OpenedClass的Activity
                it.putExtras(basket); //采用putExtras方法,传递一个bundle
                startActivity(it); //开启OpenedClassActivity
                break;
            case R.id.bSAFR:
                String b = send.getText().toString();//同上
                Bundle ket = new Bundle();
                ket.putString("breakfast",b);
                Intent i = new Intent(this,OpenedClass.class);
                i.putExtras(ket);
                startActivityForResult(i,0); //Activity回传字符串
                break;

        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { //回传后重写onActivityResult方法
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK){
            Bundle answer = data.getExtras(); //获取回传的bundle
            String s = answer.getString("answer"); //从bundle中获取字符串
            tvGet.setText(s); //设置到TextView显示
        }


    }
}
(b)
public class OpenedClass extends Activity implements RadioGroup.OnCheckedChangeListener, View.OnClickListener {
    RadioGroup selectionList;
    Button bReturn;
    TextView question,other;
    String s;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.send);
        initialize();
    }

    private void initialize() {
        selectionList = (RadioGroup)findViewById(R.id.rgAnswers);
        bReturn = (Button)findViewById(R.id.bReturn);
        question = (TextView)findViewById(R.id.tvQuestion);
        other = (TextView)findViewById(R.id.tvOther);
        selectionList.setOnCheckedChangeListener(this);
        bReturn.setOnClickListener(this);

        Bundle basket = getIntent().getExtras(); //接收上一个Activity传递的bundle
        String q = basket.getString("breakfast"); //取出bundle中的字符串
        question.setText(q); //显示到TextView
    }

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) { //监听RadioGroup的改变
        switch (checkedId){ //根据RadioButton的ID选择
            case R.id.rbFour:
                s = "four people";
                break;
            case R.id.rbFive:
                s = "five people";
                break;
            case R.id.rbSix:
                s = "six people";
                break;
        }
        other.setText(s); //显示到TextView
    }

    @Override
    public void onClick(View v) { //Return按钮的点击监听
        Intent answer = new Intent();
        Bundle ket = new Bundle();
        ket.putString("answer",s);
        answer.putExtras(ket); //照常采用Intent的putExtras方法发送bundle中绑定的字符
        setResult(RESULT_OK,answer); //设置回传的信息
        finish(); //结束当前Activity
    }
}

6、 SharedPreferences保存数据

xml布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:id="@+id/etSave" />

    <Button
        android:text="Save"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bSave" />

    <Button
        android:text="Load"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bLoad" />

    <TextView
        android:text="Load your data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tvLoad" />
</LinearLayout>
Activity代码:
public class SharedPrefs extends Activity implements View.OnClickListener {
    Button save,load;
    TextView show;
    EditText input;
    SharedPreferences someData; //定义一个sharedPreferences
    public static String filename = "MySharedString"; //定义一个静态的存储名
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sharedpreferences);
        setupVariables();
        someData = getSharedPreferences(filename,0); //获取sharedPreferences中的数据(无论是否存在)
    }

    private void setupVariables() {
        save = (Button)findViewById(R.id.bSave);
        load = (Button)findViewById(R.id.bLoad);
        show = (TextView)findViewById(R.id.tvLoad);
        input = (EditText)findViewById(R.id.etSave);

        save.setOnClickListener(this);
        load.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case  R.id.bSave:
                String sharedString = input.getText().toString();
                SharedPreferences.Editor editor = someData.edit(); //定义editor用于改变数据
                editor.putString("sharedString",sharedString); //存入数据
                editor.commit(); //执行commit提交
                break;
            case R.id.bLoad:
                //获取key为sharedString的数据,若异常,则显示Not get
                String getString = someData.getString("sharedString","Not get");
                show.setText(getString); //显示到TextView
                break;
        }
    }
}

7、利用WebView浏览网页

xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="100"
    >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="20"
        android:inputType="textPersonName"
        android:id="@+id/etSite" />

    <Button
        android:text="Go"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="80"
        android:id="@+id/bGo" />
</LinearLayout>
    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/wvShow"/>
</LinearLayout>
Activity代码:
public class SimpleBrowser extends Activity implements View.OnClickListener {
    //此外还需在mainifests中添加网络权限<uses-permission android:name="android.permission.INTERNET"/> //添加网络权限
    Button go;
    EditText site;
    WebView webShow;
    @Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simplebrowser);
        go = (Button)findViewById(R.id.bGo);
        site = (EditText)findViewById(R.id.etSite);
        webShow = (WebView)findViewById(R.id.wvShow);
        go.setOnClickListener(this);

        webShow.loadUrl("http://www.baidu.com"); //登录百度网页
        webShow.setWebViewClient(new OurClient()); //设置覆盖浏览跳转网页(跳转不调用系统浏览器打开)

        //打开页面时, 自适应屏幕
        webShow.getSettings().setLoadWithOverviewMode(true);
        webShow.getSettings().setUseWideViewPort(true);//设置此属性,可任意比例缩放
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bGo:
                String loadSite = site.getText().toString();
                webShow.loadUrl(loadSite);
                break;
        }
    }

    private class OurClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) { //划线证明此方法已过时
            view.loadUrl(url);
            return true;
        }
    }
}







评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值