我需要在应用程序中显示马拉地语文本。实际上我知道程序。我已经使用了以下代码:
Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");
userNameTxt.setTypeface(font);
userNameTxt.setText("Marathi");
但这是硬编码的,并且受到限制。实际上,我要显示的Web服务数据包含一些马拉地语和英语数据。每当马拉地数据到来时,它只会向我显示框。
这是我的输出,看起来像这样:
谁能知道我该怎么做才能以马拉地形式显示数据。
提前致谢
这是我的代码:
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) {
}
}
}
}
最佳答案
而不是这样:
Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");
写
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Marathi-Saras.TTF");
关于android - 如何在Android中显示来自Web服务的马拉地语文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10750044/