我试图将值从一个类传递到另一个类。我不能使用intent,因为该类扩展了一个自定义库,我不能使用bundle和stuffs(如果我正确的话)。这是我尝试过的。
我有两个类callhelper.java,它监视Incoming和Outgoing调用。当一个动作被触发时,它会从DB填充数据并将其发送到另一个显示弹出窗口的类。
callhelper class
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以显示从前一个类传递的消息的方法。此方法设置Popup的布局。弹出窗口在StandOutWindow.show()
方法的CallHelper类中调用。
所以,问题是,无论何时显示弹出窗口,它都会显示null
。如何让它显示我的消息而不是null。应该加入多少代码?请帮忙解决这个问题。提前谢谢。
答案 0 :(得分:0)
创建一个SharedPrefencesHelper类,使其具有您想要在各种类中使用的所有全局变量,然后您可以使用简单的getter方法在应用程序的任何位置使用这些变量。查找SharedPreferences,它非常易于使用。 / p>
答案 1 :(得分:0)
由于这是运行时数据,因此不建议使用共享首选项。创建一个名为RunTimeData.java的类。在此声明所有必需变量为static。每当您需要保存数据时,请将其保存到这些变量中。在其他类中使用数据后,请确保通过将变量设置为null来重新调整变量。
实施例
public class RunTimeData{
public static String name=null;
}
虽然分配数据的确如下使用。
RuntimeData.name = “YYYYY”;
使用数据时使用如下。
TextView tv = new TextView(); tv.setText(RunTimeData.name);
RunTimeData.name = NULL;
当您确定某个地方不再使用该值时,释放该变量。