Android Studio динамическое меню - PullRequest
0 голосов
/ 04 апреля 2019

Я разработал веб-сайт в ASP.NET.Сейчас, чтобы иметь быстрое решение, мне нужно приложение для Android для этого.Приложение работает нормально.Приложение открывает WebView с URL (http://example.com? PageID = 1 ), например.

Теперь мне нужно динамическое слайд-меню.Мне нужна такая архитектура.ASP.NET WebService предоставляет мне меню, поэтому в приложении для Android я бы позвонил, как http://example.com? Action = GetMenuXML .Это даст мне структуру XML пунктов меню веб-сайта, и мне нужно, чтобы это использовалось в моем приложении для Android.

Я знаю, как ASP.NET может предоставить нужное мне меню XML, и в моем AndroidПриложение Я знаю, как загрузить его со своего веб-сайта, но в настоящее время я не знаю, как использовать загруженный XML для скользящего навигационного меню в моем приложении для Android.

У меня есть опыт работы с C # и ASP.NET, но я новичок в создании приложений для Android.Java легка для меня и очень похожа на C #, так что это облегчает.

Код ASP.NET для предоставления меню похож на

if (Request.QueryString["Action"] != null) {
   string Action = Request.QueryString["Action"].ToString();
   string MyMenu = "<item>StartPage</item><item>Page2</item>";
   Response.Write(MyMenu);
}

Код для загрузки менюс моего веб-сайта в приложении для Android:

public static String DoDownload(String DownloadUrl) {
    String ret = "";
    try {
        URL url = new URL(DownloadUrl);
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        try {
            InputStream in =new BufferedInputStream(urlConnection.getInputStream());
            BufferedReader reader = new BufferedReader(new InputStreamReader( in ));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
            ret = sb.toString();
        } finally {
            urlConnection.disconnect();
        }
    }
    catch(IOException e) {
    }
    return ret;
}

Пока у меня есть целое меню в строке, но как использовать this в качестве навигационного меню Android?

Хорошо, я наконец-то начал работать, это было намного проще, чем я думал.

public void FillMenuFromWebService(String whichOne)
    {
        String resp = "";
        if(MyGlobal.Menu_Destinations.isEmpty()) {
            //At start of the app, i will download the menu from the WebService...
            resp = MyGlobal.DoDownload(MyGlobal.getWebServiceUrl() + "?GetMenu=" + whichOne);
            resp = MyGlobal.ExtractServerResponse(resp);
            MyGlobal.Menu_Destinations = resp;
        }
        else
        {
            resp = MyGlobal.Menu_Destinations;
        }

        String[] theItems = resp.split("<br/>");
        Menu menu = navigationView.getMenu();
        String theTitle = "";
        for(int i = 0;i< theItems.length; i++)
        {
            theTitle = MyGlobal.GetParmValue(theItems[i], "Text");
            //I need something like Value here like menu.add(theTitle, theValue);             
            menu.add(theTitle);
        }
        navigationView.invalidate();
    }

Но я для Android MenuItem Я пропускаю что-то вроде Value, которое я хочу использовать, когда нажимается этот MenuItem .. Любая идея

...