2014-10-23 2 views
0

"캘린더에 추가"버튼을 클릭했을 때 응용 프로그램에 문제가 발생했습니다. logcat을 살펴보면 이벤트를 처리 할 활동이 없다는 것을 알았습니다. 그 작업 방법을 잘 모르겠습니다. 버튼이맞춤 URL 이벤트를 처리하는 방법은 무엇입니까?

package com.sideresult.cyfaircal; 

public class Event { 
String[] myStringArr; 

int day; 
int month; 
int year; 
String timeString; 
int hourS; 
int minuteS; 
int hourE; 
int minuteE; 
String title; 
String timezone; 

public int getDay() { 
    return Integer.parseInt(myStringArr[0].split("=")[1]); 
} 

public int getMonth() { 
    return Integer.parseInt(myStringArr[1].split("=")[1]); 
} 

public int getYear() { 
    return Integer.parseInt(myStringArr[2].split("=")[1]); 
} 

public String getTimeString() { 
    return myStringArr[3].split("=")[1]; 
} 

public int getHourS() { 
    return Integer.parseInt(myStringArr[4].split("=")[1]); 
} 

public int getMinuteS() { 
    return Integer.parseInt(myStringArr[5].split("=")[1]); 
} 

public int getHourE() { 
    return Integer.parseInt(myStringArr[6].split("=")[1]); 
} 

public int getMinuteE() { 
    return Integer.parseInt(myStringArr[7].split("=")[1]); 
} 

public String getTitle() { 
    return myStringArr[8].split("=")[1]; 
} 

public String getTimezone() { 
    return myStringArr[9].split("=")[1]; 
} 

public Event(String[] myStringArr) { 
    super(); 
    this.myStringArr = myStringArr; 
} 
} 

현재 전체 응용 프로그램은 웹뷰에서 실행이 코드 URL에서 정보의 구문 분석을 누르면, 내 핸들의 모든 그것에 대해 내가 아무 생각이

import android.content.Intent; 
import android.net.Uri; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MyAppWebViewClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if(Uri.parse(url).getHost().endsWith("filenecal.com")) { 
      return false; 
     } 

     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     view.getContext().startActivity(intent); 
     return true; 
    } 
} 

이 코드에 어떤 종류의 활동을 구문 분석하고 사용자 지정 URL에서 달력으로 파싱 된 데이터를 추가하는 데 필요합니다.

mlevents : // 추가/이벤트 일 = 8 & 개월 = 10 & 년 = 2014 & TIMESTRING = 12 : 오후 12시에서 오후 12시 반 사이 & 시간 = 12 & 분 = 00 & hourE = 12 & 분 = 30 & title = Filene 101 : 생각 해봐. 해야 할 것. 변화. | 웹 세미나 & 시간대는 = CST

여기 여기 logcat

package com.sideresult.cyfaircal; 

import android.net.Uri; 
import android.os.Bundle; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.app.Activity; 
import android.content.Intent; 


public class Tab2 extends Activity { 



private WebView webView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tab2); 

    webView = (WebView) findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("http://filenecal.com/mobile/index.php"); 
    webView.setWebViewClient(new MyAppWebViewClient()); 
    WebSettings settings = webView.getSettings(); 
     settings.setLoadWithOverviewMode(true); 
     settings.setUseWideViewPort(true); 

} 
} 

답변

0

당신은 어떤 활동에 함께 MyAppWebViewClient을 사용하고 일정 내 TAB2 내 로그 캣입니까 ?? 그렇지 않다면 먼저 액티비티를 생성 한 다음, 해당 액티비티 내에서 MyAppWebViewClient 클래스의 객체를 애플리케이션의 주요 액티비티로 사용해야합니다.

다음 당신은 단순히

view.loadUrl(url); 

대신 shouldOverrideUrlLoading() 메소드에

view.getContext().startActivity(intent); 

의 호출 할 수 있습니다. 이 도움이

WebView webview = (WebView) findViewById(R.id.webview); 
    web.setWebViewClient(new MyAppWebViewClient()); 
    web.loadUrl("http://www.google.com"); 

희망 아래와 같이

당신은 당신의 활동에서 한 OnCreate 방법에서이 webviewclient를 호출 할 수 있습니다. 문제가 있으면 알려주십시오.

+0

실제로 활동에서 그걸 사용하고 있습니다. 그것은 내 tab2에서 캘린더가로드되는 곳입니다.하지만 캘린더에 버튼을 클릭하면 멀린과 어떻게 해야할지 알 수 없습니다. – bumbob

+0

나는 편집을했습니다. MyAppWebViewClient를 호출하는 위치를 표시하는 질문은 어떻게 탭 2에서 webview 내부에 mlevent를 넘길 수 있는지, 나는 정보를 파싱하고 대신 캘린더로 내보내는 데 사용할 코드를 알지 못한다. 앱 충돌 – bumbob

관련 문제