Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值从一个类传递到另一个类_Java_Android - Fatal编程技术网

Java 将值从一个类传递到另一个类

Java 将值从一个类传递到另一个类,java,android,Java,Android,我试图将值从一个类传递到另一个类。我不能使用intent,因为该类扩展了一个自定义库,并且我不能使用bundle和stuff(如果im正确的话)。这是我试过的 我有两个类callhelper.java,它监视传入和传出呼叫。当触发一个操作时,它从DB填充数据并将其发送到另一个类,在该类中显示弹出窗口 callhelper类 public void onReceive(Context context, Intent intent) { String number = in

我试图将值从一个类传递到另一个类。我不能使用intent,因为该类扩展了一个自定义库,并且我不能使用bundle和stuff(如果im正确的话)。这是我试过的

我有两个类callhelper.java,它监视传入和传出呼叫。当触发一个操作时,它从DB填充数据并将其发送到另一个类,在该类中显示弹出窗口

callhelper类

public void onReceive(Context context, Intent intent) {
             String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
                String out = null;

            String query = "select * from ReminderTable" ;
            Cursor c2=   enter.selectQuery(query);
             //GetData and place it in out

    //Instance of 2nd class PopUpDisplay set = new PopUpDisplay();
    //passing out to function   set.setData(out);
    // calling 2nd class to display popup //  StandOutWindow.show(context, PopUpDisplay.class, StandOutWindow.DISREGARD_ID);
                     Toast.makeText(ctx, out, Toast.LENGTH_LONG).show();
             enter.close();
在popupdisplay类中,我有一个全局变量和一个方法
setData()
,用于设置变量的值

@Override
public void createAndAttachView(int id, FrameLayout frame) {
        // create a new layout from body.xml
        LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
     view = inflater.inflate(R.layout.simple, frame, true);
     tv1 = (TextView)view.findViewById(R.id.tvdisplaypoptitle);
        tv = (TextView) view.findViewById(R.id.tvdisplaypopnote);

        tv.setText(note);
        tv1.setText("Title");
    btn1 = (Button) view.findViewById(R.id.btn3);
    btn1.setOnClickListener(this);

}

public void setData(String a){
        note = a;
}
createAndAttachView是我想要设置textview以显示上一个类传递的消息的方法。此方法设置弹出窗口的布局。该弹出窗口在CallHelper类中由
StandOutWindow.show()
方法调用


因此,问题是,无论何时显示弹出窗口,它都会显示
null
。如何使其显示我的消息而不是null。应该添加什么额外的代码?请帮忙。提前感谢。

创建一个SharedReferenceShelper类,使其包含您希望在各种类中使用的所有全局变量,然后您可以使用简单的getter方法在应用程序中的任何位置使用这些变量。查找SharedReferences,这很容易使用。

因为这是运行时数据,不建议使用SharedReference。创建一个名为RunTimeData.java的类。在此将所有必需变量声明为静态变量。每当需要保存数据时,请将其保存到这些变量中。在使用其他类中的数据后,确保通过将变量设置为null来释放变量

例如

public class RunTimeData{
public static String name=null;
}

分配数据时,请按如下方式使用

RuntimeData.name=“yyyy”

在使用数据时,请按如下方式使用

TextView tv=新建TextView(); tv.setText(RunTimeData.name)

RunTimeData.name=null


当您确定不再在某处使用该值时,请释放该变量。

如何使用全局常量变量?还是共享pref?你试过了吗?我没有试过共享prefs,我是android新手,你能指导我吗@女主角