android - 访问另一个类中 Activity 中的变量

标签 android

在我的应用程序中,我需要一个从一个 Activity 到另一个 Activity 的变量,而不使用任何 Intent 。所以我将该变量声明为静态变量并用作 FirstActivity.a 但它返回的是空值,因此我创建了一个扩展应用程序的类并在那里声明了该变量我仍然得到空值。不知道如何实现这一目标。

Google 搜索了很多,但每个人都建议使用静态或扩展 Application 类,不幸的是,这两种方法都不适合我。

应用类:

public class ApplicationClass extends Application{

    private String StockName;

    public String getStockName() {
        return StockName;
    }

    public void setStockName(String stockName) {
        StockName = stockName;
    }



}

将一个 Activity 中的变量设置为:

public class Detail extends Activity{

ApplicationClass ac;

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.stockdetail);
        ac=new ApplicationClass();

        ac.setStockName(getIntent().getExtras().getString("StockName"));
}

在另一个类中检索变量:

public class Table {

    Context c1;

    Cursor c;
    ApplicationClass ac=new ApplicationClass();

public String selectdate="Select " + column1 + " as _id, " + column2 + " From " + tablename + " Where " + column3 + " = " 
                                + ac.getStockName();

我不确定如何实现这一目标。

编辑

public class Detail extends Activity{

public static sname;

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.stockdetail);

        sname=getIntent().getExtras().getString("StockName");
}

public class Table {

        Context c1;

        Cursor c;

    public String selectdate="Select " + column1 + " as _id, " + column2 + " From " + tablename + " Where " + column3 + " = " 
                                    + Detail.sname;

最佳答案

您应该在您的 list 中定义您的子类应用程序类。而且你永远不应该调用“new ApplicationClass()”。您可以使用 Activity 的 getApplication() 方法获取对 ApplicationClass 实例的引用。

详细信息.java:

public class Detail extends Activity{

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.stockdetail);
    ApplicationClass app = (ApplicationClass)getApplication();
    app.setStockName("blah");
}
}

表格.java

public class Table {
public String selectDate;
public Table(Activity a)
{
    ApplicationClass ac=(ApplicationClass)a.getApplication();
    selectdate="Select " + column1 + " as _id, " + column2 + " From " + tablename + " Where " + column3 + " = " 
                            + ac.getStockName();
}

实例化Table.java

public NewActivity extends Activity{

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Table t = new Table(this);

}
}

关于android - 访问另一个类中 Activity 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22759644/

相关文章:

android - 如何在 React Native WebView 中触发嵌入式 YouTube 视频播放的全屏模式?

android - 使用 JSoup 获取表格行

android - Android 编程最原始的可能工具链是什么?

android - 底部栏导航未显示所有标题

android - 无法移动或关闭 Android 模拟器

java - 如何在使用 HttpsURLConnection 时覆盖 Android 发送到服务器的密码列表?

android - Andengine中的碰撞检测

java - Android Studio模拟器:流程结束,退出代码为-1073741515(0xC0000135)

android - iOS/Android 商店并从相应商店之外购买积分(无应用内购买)

android - 发布您的 Android 应用