Android 普通类中怎么向activity中传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 普通类中怎么向activity中传值相关的知识,希望对你有一定的参考价值。

如:
public class a
ArrayList<String> temp_list = new ArrayList<String>();//得到一串数据保存到temp_list

怎么传到B activity中呢?

什么叫普通类?在android四大组件当中,传值普遍采用的是Intent还有Bundle这样的形式
以Text为例
发送方是 Intent intent = new Intent(Context context,otherActivityOrService.class);
intent.putExtra("key","yourText");

startActivity(intent);//如果启动的是service就使用startService(intent);

接收方如果是Service或是BroadcastReceiver会在生命周期方法中直接获得intent
如果接收方仍然是一个Activity那么应该使用Intent intent = getIntent();
然后用
String text = intent.getStringExtra("key"); 这样的方式来获取传过来的值
参考技术A 把class A封装成一个单利,然后在B Activity中调用就可以了

Android 中如何在java类中调用activity 中的一个方法?

我导入一个jar包,需要用到这个jar包里面MainActivity的一个方法,这是一个activity好像不能new的方法实例化,然后调用它的方法,请问这个要怎么调用?

通常,您不应该以这种方式创建新的 MainActivity 实例。要打开一个新的 MainActivity,请使用 Intent。在您的情况下,您应该引用原始 MainActivity 实例,并在那里调用此方法。不要以任何方式创建新的,因为您已经在运行它。
一个简单的解决方法:
MainActivity.this.myMethod("Hello there")
您不必存储mContext. 你已经在 MainActivity 里面了。
因此,完整的代码将是:
public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = findViewById(R.id.webview);
myWebView.loadUrl("http://www.google.com");
myWebView.addJavascriptInterface(new WebAppInterface(), "Android");

public void myMethod(String test)
Toast.makeText(this, test, Toast.LENGTH_SHORT).show();

public class WebAppInterface
/** Show a toast from the web page */

@JavascriptInterface
public void showToast(String toast)
MainActivity.this.myMethod("Hello there");



实际上,我认为您甚至可以避免使用MainActivity.this., 并myMethod直接调用。
参考技术A 你如果只是当工具类来用是可以new的然后调用里面的方法

以上是关于Android 普通类中怎么向activity中传值的主要内容,如果未能解决你的问题,请参考以下文章

从 Activity 向服务发送消息 - Android

Android 普通类获取Context的方法

Android 普通类获取Context的方法

Android 中如何在java类中调用activity 中的一个方法?

Android在 普通类(非Activity,多数为Adapter) 中 传输数据为空值 解决方法 :在startActivity 用 intent传输数据

Android开发中EventBus的使用