andriod的简单用法1

andriod的简单用法1

1、从一个Activity跳转到另一个Activity,使用Intent.

    在按钮的onClick中如下写法:

   

public void Login(View view) {
        Intent intent = new Intent();
        //设置从Relativeactivity跳转到LoginActivity
        intent.setClass(Relativeactivity.this, LoginActivity.class);
        //用putExtra来从一个Activity向另一个来传递数据
        intent.putExtra("name", "独此一家");
        intent.putExtra("password", "1234");
        startActivity(intent);
    }

在新打开的Activity中进行接收

    private EditText loginNameEditText = null;
    private EditText loginPasswordEditText = null;
    
    protected void onCreate(Bundle savedInstanceBundle) {
        super.onCreate(savedInstanceBundle);
        
        setContentView(layout.login);
        
        //requestWindowFeature(Window.FEATURE_NO_TITLE);
        loginNameEditText = (EditText)findViewById(R.id.LoginName);
        loginPasswordEditText = (EditText)findViewById(R.id.LoginPassword);
        //接到传递过来的Intent 
        Intent intent = getIntent();
        //接收Intent中的数据
        String nameString = intent.getStringExtra("name");
        String passwordString = intent.getStringExtra("password");
        loginNameEditText.setText(nameString);
        loginPasswordEditText.setText(passwordString);
                    
        
    }

使用隐式 Intent:

隐式Intent是不指定具体启用哪个Activity,而是设定Intent的 Action和Category属性,有系统分析去启动哪个Activity。

在AndroidManifest.xml注册Activity的时候设置这两个属性

<activity android:name=".LoginActivity" android:label="Login"
            >
            <intent-filter>
                <action android:name="com.example.one.loginactivity" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            
        </activity>

Intent intent= new Intent("com.example.one.loginactivity");

startActivity(intent) 就可以启动该Activity。

可以是用 intent.addCategory()来增加intent的Category选项,可以加多个category来唯一确定

2、判断文本框是否为空,并弹出提示 ,参考链接:http://zhouhaitao.iteye.com/blog/1831523

public void Login(View view) {
        
        String loginNameString = loginNameEditText.getText().toString();
        String loginPasswordString  = loginPasswordEditText.getText().toString();
        Log.d("LoginActivity", loginNameString);
        //判断是否为空用equals
        if(loginNameString.equals(""))
        {
            //这个提示是显示一下自动就消失了
            Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
            return;
        }
        else {
            Toast.makeText(LoginActivity.this, "已经有了", Toast.LENGTH_SHORT).show();
        }
        if(loginPasswordString.equals(""))
        {
            //这个是alert提示框,可以设置 标题、内容和按钮,不要忘了最后的show
            new AlertDialog.Builder(view.getContext()).setTitle("提示").setMessage("密码不能为空!")
            .setPositiveButton("确定", null).show();
        }
        
        
    }

3、返回数据给上个Activity

  有A、B两个Activity,从A启动打开了B。则A是B的上一个activity . 当在B中点击按钮调用finish()销毁B活动,或者点击手机返回键时,则手机返回上个Activity,即显示A。

 ①、点击按钮调用finish()这种的写法:

       在A中打开B活动时,调用 startActivityForResult(intent, requestCode)

      在B中按钮事件中调用setResult(RESULT_OK,intent);finish();来回传数据。

      在A活动中重写onActivityResult(int requestCode,int resultCode,Intent data)来接收B中回传的数据。

②、用户点击返回按钮销毁了B活动,这是怎么把数据返回给A。

    在上边说的三个步骤中,没有了第二步的点击按钮调用的事件。而是需要在B活动中重写onBackPressed()方法。

这里具体每个方法的参数和用法,可以百度搜索或者查帮助文档