0
주 활동에서 WebView의 현재 URL을 가져 와서 사용자 정의 DialogPreference에서 사용자의 TextView로 표시하려고합니다. 내 어려움은 지금 내가 전화 할 때마다, null이 반환됩니다. 그녀는 웹보기가 null을 반환하게하는 뭔가 잘못하고기본보기에서 WebView.getUrl()을 호출하면 null이 반환됩니다.
public class CustomAlertPreference extends DialogPreference {
String currentURL = "HARDCODED TEST";
public CustomAlertPreference(Context context, AttributeSet attrs) {
super(context, attrs);
setDialogLayoutResource(R.layout.custom_alert_preference);
setPositiveButtonText(android.R.string.ok);
setNegativeButtonText(android.R.string.cancel);
}
@Override
protected void onBindDialogView(View view) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view2 = layoutInflater.inflate(R.layout.activity_main, null);
WebView webview = (WebView)view2.findViewById(R.id.shopFloorView);
currentURL = webview.getUrl();
TextView txview = (TextView) view.findViewById(R.id.URLCurrent);
txview.setText(currentURL);
}
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("prefWMl", currentURL);
editor.commit();
Toast toast = Toast.makeText(getContext(), "URL changed to " + currentURL, Toast.LENGTH_SHORT);
toast.show();
}
}
암 :
다음은 사용자 정의 DialogPreference 내 코드입니까? 나는 페이지가 완전히로드되도록했다. 그래서 그렇지 않다. 사전에
감사합니다, 요한 복음
필요에 따라 현재 URL에 액세스해야합니다. (사용자가 내 DialogPreference를 열면) – DeadlyJohny
'currentURL'에 그냥 들어 있지 않나요? – shkschneider
그게 포함되어 있다고 생각합니다. 당신이 제안한 함수를 추가하는 것은 특정 시간에 호출되지 않은 것 같습니다. customAlertPreference는 환경 설정 활동 안에 있고 WebView는 내 주요 활동 안에 있다는 것을 상기시켜야합니다. – DeadlyJohny