【问题标题】:Android - onCreate()Android - onCreate()
【发布时间】:2016-05-12 00:28:52
【问题描述】:

有没有办法访问 onCreate() 上的变量,以便在另一个类中重用它们?

String testSubCa="";
String prixe="";
String testWiifi="";
Double testPrice=0.0;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_srdata);
    testSubCa = getIntent().getStringExtra(SearchRestau.txxtSub);
    prixe = getIntent().getStringExtra(SearchRestau.txtprix);
    testWiifi =  getIntent().getStringExtra(SearchRestau.txxtWifi);
    testPrice=Double.parseDouble(prixe);
    refresh = (ImageButton) findViewById(R.id.imgRefresh);
    refresh.setOnClickListener(this);
}

我需要使用这些数据:/

【问题讨论】:

  • 这不是一个android问题,它是一个基本的类结构/数据访问问题。
  • @JoxTraex 是对的。尽管如此,将变量定义为静态:public static String testSubCa="";。如果你将这个类命名为SearchRestau,它就会起作用。
  • 没有变化...我的班级只访问已经初始化的内容。
  • 我正在将这些条目与我数据库中的其他数据一起使用。

标签: java android oop


【解决方案1】:

由于您没有真正具体说明您的计划是什么,因此要找到合适的解决方案有点困难。 我只是假设你想要做的是启动一个活动,让用户在这个活动中做一些事情,然后回到它开始的地方,能够使用在活动中创建的值。

最简单的方法是不通过 startActivity(Intent) 启动活动,而是使用startActivityForResult(Intent, RequestCode);

在同一个活动中,您需要处理实际获得结果的事件。为此,您需要实现该方法

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (resultCode == RESULT_OK)
    {
        //Your code to retrieve the data here!
    }
}

变量应该存储在 Intent 数据中,并且可以通过使用 data.getStringExtra();

要将值放入结果中,您需要将此代码放入实际创建它们的活动中:

Intent intent = new Intent();
intent.putExtra("value_id", value);
setResult(RESULT_OK, intent);
finish();

希望对您的问题有所帮助! 总帐

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多