android startactivity页面跳转在baseadapter中怎么用

android startactivity页面跳转在baseadapter中怎么用,第1张

一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求。
本次我们就讲一下,Android中页面跳转以及传值的几种方式!
Activity跳转与传值,主要是通过Intent类来连接多个Activity,通过Bundle类来传递数据
最常见最一般的页面跳转代码,很简单,如下:
Intent intent = new Intent(Athis, Bclass);
startActivity(intent);
也可以这样写:
Intent intent = new Intent();
intentsetClass(Athis, Bclass);
startActivity(intent);
只要这两句,就可以实现从A页面跳转到B页面了。 (A、B均继承自Activity)
有的时候,在跳转页面时还需要传递数据,这个时候如何做呢?
如果数据比较少,比如只要传一个名字,那么只要j加一句"intentputExtra("Name", "feng88724");"即可,代码如下:
Intent intent = new Intent();
intentsetClass(Athis, Bclass);
intentputExtra("Name", "feng88724");
startActivity(intent);
如果数据比较多,就需要使用 Bundle类了,代码如下: (说明直接看注释)
Intent intent = new Intent(Athis, Bclass);

/ 通过Bundle对象存储需要传递的数据 /
Bundle bundle = new Bundle();
/字符、字符串、布尔、字节数组、浮点数等等,都可以传/
bundleputString("Name", "feng88724");
bundleputBoolean("Ismale", true);

/把bundle对象assign给Intent/
intentputExtras(bundle);

startActivity(intent);
以上我们讲的都是如何进行页面跳转及数据传递,那么在另一个页面B上,应该如何接收数据呢?
在A页面上是以Bundle封装了对象,自然在B页面也是以Bundle的方式来解开封装的数据。主要通过"getIntent()getExtras()"方法来获取Bundle,然后再从Bundle中获取数据。 也可以通过" thisgetIntent()getStringExtra("Name");"方法直接从Intent中获取数据。
从Bundle获取数据的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
/加载页面/
setContentView(Rlayoutmain);

/获取Intent中的Bundle对象/
Bundle bundle = thisgetIntent()getExtras();

/获取Bundle中的数据,注意类型和key/
String name = bundlegetString("Name");
boolean ismale = bundlegetBoolean("Ismale");

}

页面跳转进行传值的话,你可以用responseredirect(“页面?ids=”+id),但是你讲的那个按钮就不是太明白是什么意思了,按钮有什么值吗?不过你可以考虑有JS试试看,也许能实现你想要的效果

这个就不是传值的问题了。
我建议:为每一个按钮添加事件监听,根据Id判断你点击的是哪一个,针对不同的id,做出不通的反应就可以了。这个时候最好用implements OnClickListener 然后就可以在下面判断了
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(vgetId()==Ridbutton1){

}
if(vgetId()==Ridbutton2){

}
}
好吧 我看错了 你使用的是GridView,那就更简单了,直接使用gridViewsetOnItemClickListrner(new OnItemClickListrner)就可以了自动补全之后就可以根据ID设置了

可以。
WebViewaddJavascriptInterface(new AndroidJavaScript(this), "Android");
在AndroidJavaScript类里定义的方法都可以通过在连接中写windowsAndroidxxx来完成。
xxx就是AndroidJavaScript类里定义的方法(可以带参数的)

在a里用startactivityforresult启动b,退出b后a能接受到b的值,跳转c前把b传过来的值用intent也一起传过去,或者不关闭a,也是用startactivityforresult启动c,c关闭后值传回来到a里

可以考虑通过url的方式传递到html中。比如说传用户名,你的html页面名字叫1html,那么这样传值:1htmluid=张三,而在html页面中,用js来获取到uid的值。

Intent intent = new Intent();
//用intentputExtra(String name, String value);来传递参数。
intentputExtra("one",number1);
intentputExtra("two", number2);
intentsetClass(activity1this, activity2class);
startActivity(intent);
然后在activity2中
Intent intent1 = getIntent();
// 用intent1getStringExtra()来得到activity1发过来的字符串。
String one = intent1getStringExtra("one");
String two = intent1getStringExtra("two");
然后在sql语句获取值存储。

安卓实现页面跳转及传递参数教程:

用类名跳转

Intent负责对应用中一次 *** 作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述, 负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent在这里起着实现调用者与被调用者之间的解耦作用。

Intent传递过程中,要找到目标消费者(另一个Activity,IntentReceiver或Service),也就是Intent的响应者。

Java代码 package comAndroid; 
 
import androidappActivity; 
import androidcontentIntent; 
import androidosBundle; 
import androidviewView; 
import androidviewViewOnClickListener; 
 
public class FormStuff extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
       superonCreate(savedInstanceState); 
       setContentView(Rlayoutformstuff); 
 
       final ImageButton button = (ImageButton) findViewById(Ridandroid_button); 
       buttonsetOnClickListener(new OnClickListener() { 
         public void onClick(View v) { 
// 用类名跳转,需要在AndroidManifestxml中申明activity 
            Intent intent = new Intent(FormStuffthis, HelloTabWidgetclass); 
            startActivity(intent); 
         } 
       }); 
 

复制代码Xml代码 <xml version="10" encoding="utf-8"> 
<manifest xmlns:android=";

使用Action跳转实现

使用Action跳转,如果有一个程序的 AndroidManifestxml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent 就与这个目标Action匹配。如果这个IntentFilter段中没有定义 Type,Category,那么这个 Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会d出一个对话可框来提示说明。

Action的值在Android中有很多预定义,如果想直接转到你自己定义的Intent接收者,可以在接收者的 IntentFilter中加入一个自定义的Action值(同时要设定 Category值为"androidintentcategoryDEFAULT"),在Intent中设定该值为Intent的 Action,就直接能跳转到自己的Intent接收者中。因为这个Action在系统中是唯一的。

data/type,可以用Uri来做为data,比如Uri uri = Uriparse(>

Intent i = new Intent(IntentACTION_VIEW,uri);手机的Intent分发过程中,会根据>

手机的Brower则能匹配它,在Brower的Manifestxml中的IntenFilter中首先有ACTION_VIEW Action,也能处理>

至于分类Category,一般不要去在Intent中设置它,如果写Intent的接收者,就在Manifestxml的 Activity的 IntentFilter中包含androidcategoryDEFAULT,这样所有不设置 Category(IntentaddCategory(String c);)的Intent都会与这个Category匹配。

extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。

Java代码 package comandroidedit_text; 
 
import androidappActivity; 
import androidcontentIntent; 
import androidosBundle; 
import androidviewKeyEvent; 
import androidviewView; 
import androidwidgetEditText; 
 
public class MyEditText extends Activity { 
 
private TextView m_TextView; 
private EditText m_EditText; 
 
 
@Override 
public void onCreate(Bundle savedInstanceState) { 
       superonCreate(savedInstanceState); 
       setContentView(Rlayoutmain); 
 
       m_EditText = (EditText) thisfindViewById(RidEditText01); 
       m_EditTextsetOnKeyListener(editTextKeyListener); 

 
private EditTextOnKeyListener editTextKeyListener = new EditTextOnKeyListener() { 
 
       @Override 
       public boolean onKey(View arg0, int arg1, KeyEvent arg2) { 
       
                     // action跳转,需要在AndroidManifestxml中配置action 
         Intent i = new Intent("androidintentactionmydialog"); 
         MyEditTextthisstartActivity(i); 
         
         return false; 
       } 
}; 

复制代码Xml代码 <xml version="10" encoding="utf-8"> 
<manifest xmlns:android=";</manifest>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10375229.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-08
下一篇2023-05-08

发表评论

登录后才能评论

评论列表(0条)

    保存