5

我需要在我的应用程序中显示马拉地语文本。其实我知道程序。我用过这段代码:

 Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");
         userNameTxt.setTypeface(font);
         userNameTxt.setText("Marathi");

但这是硬编码和有限的。实际上,我要显示的网络服务数据包含一些马拉地语和英语数据。每当马拉地语数据出现时,它只会显示盒子。这里我的输出看起来像这样: 输出

谁能知道我需要做什么才能以马拉地语形式显示数据。提前致谢

这是我的代码:XMLHandler 类

package com.app.unipune.announcements.parserHandler;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import android.text.Html;

public class AnnouncementHandler extends DefaultHandler {
    public static ItemList itemList;
    public boolean current = false;
    public String currentValue = null;

    @Override
    public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        current = true;
        if (localName.equals("channel")) {
            itemList = new ItemList();
        }
    }

    @Override
    public void endElement(String uri, String localName, String qName)
            throws SAXException {
        current = false;
        if (localName.equals("title")) {
            itemList.setTitle(currentValue);
        } else if (localName.equals("author")) {
            itemList.setLink(currentValue);
        } else if (localName.equals("description")) {
            itemList.setDescription(currentValue);

        }else if(localName.equals("guid"))
        {
            itemList.setGuid(currentValue);
            System.out.println(currentValue);
        }
    }

    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException {
        if (current) {
            currentValue = new String(ch, start, length);
            current = false;
        }
    }

}

我在这里使用它:

package com.app.unipune.announcements;

import java.net.URL;
import java.util.ArrayList;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.method.LinkMovementMethod;
import android.widget.ListView;

import com.app.unipune.announcements.parserHandler.Adapter;
import com.app.unipune.announcements.parserHandler.AnnouncementHandler;
import com.app.unipune.announcements.parserHandler.ItemList;

public class Announcements extends Activity {
    private ProgressDialog dialog;
    ItemList itemList;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.descriptionlist);
        if (isInternetOn() == true) {
            dialog = ProgressDialog.show(this, "Loading", "Please Wait...",
                    true, false);

            System.out.println("start call");
            Handler myHandler = new DoParsing();
            Message m = new Message();
            myHandler.sendMessageDelayed(m, 2000);
            System.out.println("end Call");
        } else {
            new AlertDialog.Builder(Announcements.this)
                    .setTitle("Error")
                    .setMessage(
                            "Your  device is not Connected to the Internet."
                                    + "\n"
                                    + "Please make connection to proceed ")
                    .setPositiveButton("OK", null).show();
        }

    }

    public final boolean isInternetOn() {
        ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
                || connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING
                || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING
                || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
            return true;
        } else if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED
                || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED) {
            return false;
        }
        return false;
    }

    public class DoParsing extends Handler {
        @Override
        public void handleMessage(Message msg) {
            try {

                URL url = new URL(
                        "http://uopnews.unipune.ac.in/_layouts/listfeed.aspx?List={E1D35B2C-88CA-40FF-A956-C01C44A45DC8}");
                System.out.println("URL= " + url);
                SAXParserFactory saxPF = SAXParserFactory.newInstance();
                SAXParser saxP = saxPF.newSAXParser();
                XMLReader xmlR = saxP.getXMLReader();
                AnnouncementHandler handler = new AnnouncementHandler();
                xmlR.setContentHandler(handler);
                xmlR.parse(new InputSource(url.openStream()));

                itemList = new ItemList();
                itemList = AnnouncementHandler.itemList;

                ArrayList<String> title = itemList.getTitle();
                System.out.println("title=" + title);
                ArrayList<String> des = itemList.getDescription();
                ArrayList<String> link = itemList.getLink();

                Adapter adapter = new Adapter(Announcements.this, title, des,link);

                ListView lview = (ListView) findViewById(R.id.searchList);
                lview.setAdapter(adapter);

                dialog.dismiss();
            } catch (Exception e) {
            }

        }

    }
}
4

2 回答 2

2

而不是这个:

Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");

 Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Marathi-Saras.TTF");
于 2012-05-25T07:24:45.717 回答
0

您实际需要做的是创建一个包含马拉地语单词的 xml 链接,并使用 json 或 sax 解析器解析该 xml 链接。要创建 xml 链接,您需要 php 开发人员的支持。

如果您需要任何帮助或支持,请与我联系。

于 2012-05-25T07:16:36.577 回答