广州linux

当前位置:   网站首页 >> 安卓开发

我的第一个安卓程序开发过程,安卓2.1-4.4手机完美运行

前几天就打算做一个安卓软件了,但是因为英语考试的原因,一直没有动手实现,今天终于考完了,试着打开了安装好的android studio制作了第一个安卓软件。

通过简单的了解,知道安卓的界面是在xml中实现的,而代码可以在java文件夹中编写。

虽然有点c#基础,但是和java也是差距很大的。不过原理一样,我总是用mvc架构的方式去开发软件。 

废话不多说,讲一下整个软件的mvc架构;

因为要做一个软件,他可以让用户发送数据到数据库,然后我通过软件可以看到别人发送了什么给我(有点类似聊天软件)

这里简单拖拽了一下界面View(V);

因为不可能在apk软件中直接连接数据库,这样太危险了,被别人反编译或者抓包就知道我的数据库账户密码了,

所以必须有个连接数据库的模型也就是Mode (M):这里用了php进行数据库的数据更新和查询;

Control(c)当然就是我们的代码了。

简单的软件运行流程,这里就不画图了。

用户填写内容→URLEncoder转换编码→php模型→写入数据库

我通过软件查看→php模型→读取数据库→显示出来

ok 说完这些就直接上代码吧,大家去看一下


package com.example.myapplication4.app;


import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;


import java.io.*;

import java.net.*;

import android.os.*;

import org.apache.http.util.*;

import java.lang.String;

import java.net.URLEncoder;




public class MainActivity extends ActionBarActivity {

    Button button1;

    Button button2;

    TextView text1;

    EditText eetext1;



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


       button1 =(Button)findViewById(R.id.button);

       button2 =(Button)findViewById(R.id.button2);

       text1=(TextView) findViewById(R.id.textView);


       eetext1=(EditText) findViewById(R.id.editText);


        button1.setOnClickListener(new View.OnClickListener() {

            @Override


            public void onClick(View view) {



try

{


    String ss=( URLEncoder.encode(eetext1.getText().toString(), "UTF-8") );

    String qq=  geturldata("urlup.php?w=" + ss);

    text1.setText(qq);

}

catch(Exception e)

{


}




            }

        });

        button2.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                String qq=  geturldata ( "urlget.php");


                text1.setText(qq);

            }

        });


    }



    @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;

    }


    public String geturldata (String url) {

        String msg = null;

        try{


            if (android.os.Build.VERSION.SDK_INT > 9) {

                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

                StrictMode.setThreadPolicy(policy);

            }

            URL myUrl = new URL(url);

            URLConnection myConn = myUrl.openConnection();  //open conn

            InputStream in = myConn.getInputStream();       //dedao shuruliu

            BufferedInputStream bis = new BufferedInputStream(in);

            ByteArrayBuffer baf = new ByteArrayBuffer(bis.available());

            int data = 0;

            while((data = bis.read())!= -1){

                baf.append((byte)data);

            }

            msg = EncodingUtils.getString(baf.toByteArray(), "GBK");   //

            // EditText et = (EditText)findViewById(R.id.et);      //

            return  msg;

        }

        catch(Exception e){

            e.printStackTrace();

            return "error:" + e.toString();

        }


    }


    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        // Handle action bar item clicks here. The action bar will

        // automatically handle clicks on the Home/Up button, so long

        // as you specify a parent activity in AndroidManifest.xml.

        int id = item.getItemId();

        if (id == R.id.action_settings) {

            return true;

        }

        return super.onOptionsItemSelected(item);

    }


}


// java代码




<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:paddingBottom="@dimen/activity_vertical_margin"

    tools:context="com.example.myapplication4.app.MainActivity">


    <TextView

        android:text="@string/hello_world"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/textView"

        android:layout_centerVertical="true"

        android:layout_toRightOf="@+id/textView3" />


    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/button"

        android:layout_marginTop="41dp"

        android:text="发送"

        android:layout_below="@+id/textView3"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true" />


    <EditText

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:inputType="textEmailAddress"

        android:ems="10"

        android:id="@+id/editText"

        android:layout_marginTop="66dp"

        android:layout_below="@+id/textClock"

        android:layout_centerHorizontal="true" />


    <TextClock

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/textClock"

        android:layout_alignParentTop="true"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true" />


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textAppearance="?android:attr/textAppearanceLarge"

        android:id="@+id/textView2"

        android:layout_alignBaseline="@+id/editText"

        android:layout_alignBottom="@+id/editText"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true" />


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textAppearance="?android:attr/textAppearanceSmall"

        android:text="想发送的"

        android:id="@+id/textView3"

        android:layout_alignBottom="@+id/textView2"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true" />


    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="得到数据"

        android:id="@+id/button2"

        android:layout_alignTop="@+id/button"

        android:layout_alignLeft="@+id/editText"

        android:layout_alignStart="@+id/editText" />


</RelativeLayout>

    <!--xml代码-->




发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项