Не скрывает \ показывает несколько полей на языке шаблонов усов - PullRequest
0 голосов
/ 11 марта 2012

При использовании одной пары {{# ......}} {{/ .......}} в исходном коде для отображения / скрытия, тогда все работает просто отлично;при добавлении еще одной пары (показать / скрыть) выдается ошибка:

03-11 09: 53: 33.847: WARN / dalvikvm (13459): threadid = 1: поток завершается снеобработанное исключение (группа = 0x2aacc8a0) 03-11 09: 53: 33.917: ОШИБКА / AndroidRuntime (13459): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: main java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {com.example / com.example.MyActivity}:com.samskivert.mustache.MustacheParseException: в разделе отсутствует закрывающий тег 'dic' @ line 47 на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2705) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2721) на андроиде.app.ActivityThread.access $ 2300 (ActivityThread.java:132) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2071) на android.os.Handler.dispatchMessage (Handler.java:99) на android.os.Looper.loop (Looper.java:123) при android.app.ActivityThread.main (ActivityThread.java:4669) при java.lang.reflect.Method.invokeNative (нативный метод) при java.lang.reflect.Method.invoke (Method.java:521) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:876) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:634) в dalvik.system.NativeStart.main (собственный метод) Причина: com.samskivert.mustache.MustacheParseException: в разделе отсутствует закрывающий тег 'dic' @ line 47 на com.samskivert.mustache.Mustache $ Накопитель $ 1.finish (Mustache.java:433)) на com.samskivert.mustache.Mustache.compile (Mustache.java:167) на com.samskivert.mustache.Mustache $ Compiler.compile (Mustache.java:61) на com.samskivert.mustache.Mustache $ Compiler.compile (Mustache.java:56) на com.example.MyActivity.onCreate (MyActivity.java:130) на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2669) ... 11 more 03-11 09: 53: 34.007: WARN / ActivityManager (179): принудительное завершение действия com.example / .MyActivity 03-11 09: 53: 34.007: WARN / WindowManager (179): updateFocusedWindowLocked newFocus= нулевой режим = 0 mCurrentFocus = нулевой 03-11 09: 53: 34.047: WARN / WindowManager (179): updateFocusedWindowLocked newFocus = Window {300fb6b8 application Ошибка!paused = false} mode = 1 mCurrentFocus = null 03-11 09: 53: 34.057: WARN / WindowManager (179): updateFocusedWindowLocked newFocus = Window {300fb6b8 Ошибка приложения!paused = false} mode = 3 mCurrentFocus = Window {300fb6b8 application Ошибка!paused = false} 03-11 09: 53: 34.057: DEBUG / KeyguardViewMediator (179): setHidden false

Строка кода с ошибкой:

Template tmpl = Mustache.compiler().escapeHTML(false).compile(template);

Код программы:

public class MyActivity extends Activity
{
private final static String LOG = "WedView";
String template;
String value = "";
Boolean True = true;
Boolean False = false;

WebView mWebView;


private class ContosoWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) throws MustacheException
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Tg tg = new Tg(new Date(), "5345", "ghfg", 4455, 0.0, 0);

    Tzzz tzzz = new Tzzz(2, "", "", "", "",
            "gdfg", "fgdfgdf", "", "", "gdfgdg", "gfdf", "fgd1", 36.6, 121, "Joe ", "555-5555", "", "",
            true, false, 208.9, new Date(41, 12, 12, 13, 30),
            "hhh", "12345678", "2zzzz", "21", "", "", "", "", "", "");

    tg.Stops.add(tzzz);


    try
    {

        InputStream is = getAssets().open("DetailActivity.htm");

        template = new ReadFile().Read(is);


    }
    catch (IOException e)
    {
        Log.d(LOG, " error", e);
    }

    DecimalFormat f = new DecimalFormat("##.0");

    Template tmpl = Mustache.compiler().escapeHTML(false).compile(template);
    Map<String, Object> data = new HashMap<String, Object>();


    ........................    


    value = tzzz.Value1;
    data.put("tv_stopH", value);

    value = tzzz.Value2;
    data.put("tv_sch", value);

    value = tzzz.Value3;
    data.put("arri", value);

    value = tzzz.Value4;
    data.put("tv_add", value);

    value = tzzz.Value5;
    data.put("cont", value);

    value = tzzz.Value6;
    data.put("tv_cont", value);

    if(tripStop.RefName1.length() > 0)
    {
        data.put("pic1", True);

        value = tzzz.Value7;
        data.put("tv_refName1", value);

        value = tzzz.Value8;
        data.put("tv_ref1", value);
    }

    if(tripStop.Ref1.length() > 0)
    {
        data.put("dic", True);

        value = tzzz.Value9;
        data.put("tv_refName2", value);

        value = tzzz.Value10;
        data.put("tv_ref2", value);
    }


    ......................  
    try
    {

        File file = new File("sdcard/Android/data/com.aplication/files/main.css");
        boolean success = file.createNewFile();

        BufferedWriter outfile =  new BufferedWriter(new FileWriter("sdcard/Android/data/com.aplication/files/main.css"));
        outfile.write(Css_file);
        outfile.close();
    }
    catch (IOException e)
    {
        Log.d(LOG, " error!", e);
    }

    String temp = tmpl.execute(data);


    mWebView = (WebView) this.findViewById(R.id.webView);

    // Disable scrollbars
    mWebView.setVerticalScrollBarEnabled(false);
    mWebView.setHorizontalScrollBarEnabled(false);

    // Scrollbar Overlay Content
    mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);


    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setAppCacheEnabled(false);
    mWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "AndroidFunction");   
    mWebView.loadDataWithBaseURL(null, temp, "text/html", "utf-8", null);        
    mWebView.setWebViewClient(new ContosoWebViewClient());

}

HTML код:

<div class="section3">
        <span class="section3_label1">{{tv_stopH}}</span><span class="section3_label2">    {{tv_sch}}</span>
    </div>
    <div class="section3_1">
    <div class="section3_1_textblock1">
        <span class="label_alt">{{arri}}</span><br />
        {{tv_add}}
    </div>
    <div class="section3_1_textblock2">
        <span class="label_alt">{{cont}}</span><br />
        {{tv_cont}}
    </div>
    <div class="section3_1_textblock1">
        {{#pic1}}
        <span class="label_alt">{{tv_refName1}}:</span>&nbsp;{{tv_ref1}}<br />
        {{/pic1}}
        {{#dic}}
        <span class="label_alt">{{tv_refName2}}:</span>&nbsp;{{tv_ref2}}<br />
        {{/dic}}
    </div>

1 Ответ

1 голос
/ 11 марта 2012

Я думаю, вам не хватает ключа tv_refName2 на карте:

Ваш код:

 if(tripStop.Ref1.length() > 0){
        data.put("dic", True);
        value = tzzz.Value9;

        data.put("tv_ref2", value); //This should probably be "tv_refName2"

        value = tzzz.Value10;
        data.put("tv_ref2", value);
  }
...