关于我做的那个小东西,有以下几个内容:
1、optionmenu;
2、activity之间跳转;
3、radiobutton android:checked="true"(选中);
4、edittext cityID.setVisibility(EditText.VISIBLE)(设定可见);
5、switch;
6、各activity之间数据传送。
先分开讲,最后把整个demo发出来,上篇文章说了optionmenu,今天说“activity之间跳转”。
讲两个例子:1、按钮跳转。2、菜单跳转(我在项目里用到的)。其实这两个方法大同小异,只不过跳转代码放在位置不同而已。
方法一,按钮跳转:
这个很简单,两个activity+两个布局文件+一个按钮+几行关键代码就搞定。
1、新建一个项目(我定义的是activityJump),什么类型的无所谓。
2、新建两个activity,分别为:MainActivity(默认生成),SecondActivity(自己建的)
新建activity方法:java右键--new--activity--basic activity(哪个都行)如图:
第二个activity名字secondactivity。只有一个textview.
两个布局文件。activity_main.xml内容:一个按钮,一个textview.如图:
代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是activity1"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline3" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="203dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
其实第二个activity和布局可以什么都不改,暂时它只是起到显示的做用,能看到变化就行了。
关键:跳转代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
全部代码:
Mainactivity.java
package com.example.activityjump;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是activity1"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline3" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="203dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
secondactivity.java
package com.example.activityjump;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
}
}
activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是activity2"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
方法二:菜单跳转
菜单跳转其他部分完全一样,只不过没有按钮,是用菜单跳转的。看我上一篇文章:
android studio 逆向传值 之一 选项菜单(optionmenu)
只要修改onOptionsItemSelected(MenuItem item)就可以了。
代码如下:
public boolean onOptionsItemSelected(MenuItem item) {
//通过item.getItemId()对不同选项进行不同的处理
switch (item.getItemId())
{
case R.id.id_settings:
//事件
Intent intent = new Intent();
intent.setClass(FullscreenActivity.this,settings.class);
//startActivity(intent);
startActivityForResult(intent,0);
break;
}
return true;
}
因为我这里只用一个菜单项,所以应该也可次这么写,但懒得改,这是多菜单的写法。修改好后,点击菜单就可以实现跳转了。
所有备忘都讲完后,会把包含全部功能的代码写出来,备忘,备查。