我是java和android的新手,实际上我遇到了问题,在进行投票或将其标记为重复之前,试着帮我解决这个风暴......
我将描述我的概念。我有一个网页视图片段,我有一个按钮。当用户在浏览时单击按钮时,当前网址将通过使用接口like this从片段传递到主要活动。我想在下次用户打开应用程序时将传递的网址作为默认地址(它应该加载上次从片段传递的网址)。
这就是我如何将网址从URL
从片段传递到主要活动
@Override
public void onHomeClick(String pasedurl) {
// now URL having the web address
URL= pasedurl;
//trying to save URL for the next time use
final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", URL);
editor.commit();
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("name", null);
if (restoredText == null) {
String name = prefs.getString("name", "No name defined");
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show();
}
我采取的下一步是将主要活动的url字符串传递给web片段 以便下次打开之前保存的网址
这就是我将字符串url从主要活动传递到片段
的方式 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
//passing the sting 'name'
Bundle bundle=new Bundle();
bundle.putString("url", name);
final Radio radio=new Radio();
radio.setArguments(bundle);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//other stuff
}
我正在接收像这样的网络片段
final WebView view=(WebView) rootView.findViewById(R.id.webView);
String url = getArguments().getString("url");
view.loadUrl(url);
所以现在我会告诉你我想要什么。我想将保存的字符串url从共享首选项传递给bundle.so web片段可以捕获它,或者我想从主要活动中做吐司,如
Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show();
所以我会知道最后一次保存的网址,我该怎么做?请帮帮我........
答案 0 :(得分:2)
sharedpreferences也可以在片段
中访问@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.your_fragment, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences shared = getActivity().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String url = shared.getString("name",null);
final WebView view=(WebView) view.findViewById(R.id.webView);
view.loadUrl(url);
}
答案 1 :(得分:1)
Sharedpreferense将通过intire app获取数据,这样您就可以使用相同的引用添加sharedpreferense并重新调整字符串变量。 所以只需将此行放在您想要再次获取数据的位置: SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME,MODE_PRIVATE); String restoredText = prefs.getString(“name”,null);