Reputation: 255
I need to show marathi text in my application. Actually i know the procedure . I have used this code :
Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");
userNameTxt.setTypeface(font);
userNameTxt.setText("Marathi");
But this is hardcoded and limited. Actually my webservice data which i want to show contains some marathi and English data. whenever marathi data comes it shows me only boxes.
here my outputs which looks like this:
Can anyone know what should i need to do so that i can show data in marathi form. thanks in advance
Here is my code: XMLHandler class
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;
}
}
}
here i am using it :
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) {
}
}
}
}
Upvotes: 5
Views: 2272
Reputation: 3174
instead of this:
Typeface font = Typeface.createFromAsset(getAssets(), "Marathi-Saras.TTF");
write
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Marathi-Saras.TTF");
Upvotes: 2
Reputation: 137
What u actually need to do is create an xml link that contains the marathi words,and parse that xml link using json or sax parser..for creating the xml links,u need the support of a php developer.
If u need any help or support,plz contact me.
Upvotes: 0