activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center" />
addnew.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:id = "@+id/btn_return_withoutparam" android:layout_width="50dp" android:layout_height="50dp" android:text="@string/btn_return_withoutparam" android:layout_weight="1" /> <Button android:id = "@+id/btn_return_withparam" android:layout_width="50dp" android:layout_height="50dp" android:text="@string/btn_return_withparam" android:layout_weight="1" /> </LinearLayout>
item_menu.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:paddingBottom="4dip" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:id="@+id/ItemText" android:textIsSelectable="true" > </TextView> </RelativeLayout>
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">意图跳转测试1</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="withoutParameter">无参跳转</string> <string name="withParameter">带参跳转</string> <string name="dynWin1">动态视图1</string> <string name="dynWin2">动态视图1</string> <string name="btn_return_withparam">带参返回</string> <string name="btn_return_withoutparam">无参返回</string> </resources>
Main.java
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import android.widget.SimpleAdapter; import com.gxkj.entity.User; public class Main extends Activity { GridView gridView; final int withoutparametertIntent = 0; final int withparametertIntent = 1; String [] btnTitles = {"无参跳转1","带参跳转1"}; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) this.findViewById(R.id.gridview); gridView.setNumColumns(btnTitles.length); //生成适配器 <====> 动态数组的元素,两者一一对应 List<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>(); for(int i=0;i<btnTitles.length;i++){ HashMap<String, String> map = new HashMap<String, String>(); map.put("ItemText", btnTitles[i]);//按序号做ItemText data.add(map); } SimpleAdapter simperAdapter = new SimpleAdapter(this, data, R.layout.item_menu, new String[]{"ItemText"}, new int[]{R.id.ItemText}); //添加并且显示 gridView.setAdapter(simperAdapter); //添加消息处理 gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { if(arg2 == 0 ){ //gridView.setVisibility(View.GONE); Intent intent = new Intent(Main.this,AddNew.class); startActivityForResult(intent,withoutparametertIntent); }else if(arg2 == 1 ){ //gridView.setVisibility(View.GONE); Intent intent = new Intent(Main.this,AddNew.class); User user = new User(); user.id = 1; user.name = "user_1"; intent.putExtra("user", user); startActivityForResult(intent, withparametertIntent); } } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == withoutparametertIntent){ //无参请求返回 String title = "无参请求返回"; if(resultCode == RESULT_CANCELED){ title +="--RESULT_CANCELED"; }else if(resultCode == RESULT_OK){ title +="--RESULT_OK"; } setTitle(title); }else if(requestCode == withparametertIntent){ //有参请求返回 String title = "有参请求返回"; if(resultCode == RESULT_CANCELED){ title +="--RESULT_CANCELED"; }else if(resultCode == RESULT_OK){ title +="--RESULT_OK"; }else { title +="--"+resultCode; } Intent intent = data; if(intent.getExtras()!=null && intent.getExtras().containsKey("user")){ User user = (User) intent.getSerializableExtra("user"); title +=" "+user.toString(); }else { if(intent.getExtras() ==null ){ title +=" intent.getExtras() ==null" ; }else if (intent.getExtras().containsKey("user") ==false) { title +=" no user key"; } } setTitle(title); } } }
User.java
import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = 4587371759303977455L; public int id; public String name; @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } }
AddNew.java
import com.gxkj.entity.User; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AddNew extends Activity implements OnClickListener{ private Button btn_return_withparam; private Button btn_return_withoutparam; User user =null; Intent intent = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.addnew); btn_return_withparam = (Button) this.findViewById(R.id.btn_return_withparam); btn_return_withoutparam = (Button) this.findViewById(R.id.btn_return_withoutparam); btn_return_withparam.setOnClickListener(this); btn_return_withoutparam.setOnClickListener(this); intent = getIntent(); if(intent.getExtras()!=null && intent.getExtras().containsKey("user")){ user = (User) intent.getSerializableExtra("user"); setTitle("有参请求 "+user.toString()); user.name=user.name +" 返回"; }else { setTitle("无参请求"); }; } public void onClick(View v) { switch(v.getId()){ case R.id.btn_return_withoutparam: //活动结束 finish(); break; case R.id.btn_return_withparam : intent.putExtra("user", user); setResult(3, intent); finish(); break; } } }
相关推荐
在Android课程的第二章中,我们将深入探讨Android开发的基础知识,这对于初学者来说是一次绝佳的学习机会。Android作为全球最广泛使用的移动操作系统,其开发知识的掌握是进入移动应用开发领域的关键步骤。在这个...
"意图数据 - class7"可能指的是一个特定的课程或教程,它深入讲解了如何管理和利用IntentData进行程序设计。这个主题主要关联的是Java语言,因为Android应用主要用Java编写。 Intent在Android系统中起着桥梁的作用...
Intent是一个意图对象,表示应用希望执行的动作,如启动一个新的Activity、启动Service或者发送Broadcast。创建Intent时,你需要指定动作(Action)、数据(Data)、类别(Category)以及附加数据。 创建自定义...
基于Android平台的开发,意味着该应用利用了Android SDK中的各种组件和服务,如Intent机制用于在不同活动之间传递数据和启动其他应用功能,以及Android的用户界面框架来构建友好的交互体验。 5. **技术实现**: ...
当我们谈论"Caveofprogramming.2activities"时,这显然指的是一个关于如何在Android应用中处理两个Activity的教学资源,可能是一个课程或教程。在这个场景中,我们将深入探讨Android中的Activity管理和它们之间的...
5. **意图(Intent)**:Intent是Android中的一种消息传递机制,用于启动新的Activity或服务,或在组件间传递数据。在SenacAndroid中,Intent可能用于启动新的学习模块或者执行特定操作。 6. **数据存储**:项目...
Intent是一个用来表达应用程序之间意图的对象,可以启动活动(Activity)、服务(Service)或者广播接收器(BroadcastReceiver)。学生需要学习如何创建Intent,以及如何在不同的Activity之间传递数据。 3. **搜索...
在"udacity-kotlin-main"这个项目中,可能会用到Anko库,它是JetBrains开发的一个Kotlin库,为Android开发提供了许多便利,如简化布局创建、快速创建意图、提供Lambda表达式的DSL等。Anko简化了Android开发,使得...
8. **Anko库**:Anko是JetBrains提供的一个Kotlin库,简化了Android开发,如提供DSL(领域特定语言)来简化XML布局的创建和意图的构造。 9. **Interoperability with Java**:Kotlin与Java完全兼容,可以无缝调用...