gpt4 book ai didi

来自其他 Activity 的 Android 调用方法

转载 作者:行者123 更新时间:2023-11-30 03:35:52 24 4
gpt4 key购买 nike

我已经阅读了一堆帖子、文章和所有内容,但我无法找到解决方案..我做了一个安卓应用程序..我开始第一个 Activity (头等舱)。然后我有一个用于第二个 Activity 的按钮,我这样加载它:

Intent i=new Intent(firstactivity.this,secondactivity.class);
startActivity(i);

在点击按钮事件的第二个 Activity 中,我想从第一个 Activity 中调用一个方法:

firstactivity f1= new firstactivity();
f1.MyMethod("my string goes here")

当我运行这个程序时,应用程序崩溃了。我尝试了 try catch exeption 并打印了 exeption,这是 null 的一个错误......我无法让它工作......

提前致谢!

PS 有什么方法可以启动第二个 Activity 并更新第一个 Activity 布局中的某些值(在 TextView 中)?不仅在加载时更新它,而且还有一个计时器,例如在第二个 Activity 中,每 5 个seconds settext to a textview in the layout of the first activity.. 任何解决方案(无论是这个还是我上面关于该方法的问题)将不胜感激

最佳答案

尝试使用intents在activity之间进行通信

要么通过 onNewIntent:

@Override
protected void onNewIntent(Intent intent) {
setIntent(intent);
handleIntent(intent);
}

private void handleIntent(Intent intent) {
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
if (query == null) {
query = intent.getData().toString();
}
doMySearch(query);
}
}

或者使用监听器。

class ActivityA implements Activity {

// Nested 'listener'
protected class TitleBarListener extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(NEW_TITLE_INTENT))
{
intent.getStringExtra(NEW_TITLE_TEXT_VALUE));
}
}
}

TitleBarListener mListener;

// then create and register
mListener = new TitleBarListener();
registerReceiver(mListener, new IntentFilter(NEW_TITLE_INTENT));

确保将 Intent 添加到 android.xml

    <intent-filter>
<action android:name="android.intent.action.SEARCH"/>
<action android:name="com.mypackage.changeTitle"/>
</intent-filter>

那么您应该能够向该 Activity 广播/发送 Intent

   Intent i = new Intent(AccountMainView.NEW_TITLE_INTENT);
getActivity().sendBroadcast(i);


// or if you activity is singleTop and you're using the onNewIntent:
Intent i=new Intent(this,MainActivity.class);
i.putExtra("methodName","Mymethod");//goes to previous Intent
startActivity(i);//will trigger only Mymethod in MainActivity

关于来自其他 Activity 的 Android 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com