2012-05-25 31 views
5

Ho bisogno di mostrare il testo marathi nella mia applicazione. In realtà conosco la procedura. Ho usato questo codice:Come mostrare il testo marathi in Android proveniente dal webservice

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

Ma questo è hardcoded e limitato. In realtà i miei dati sul webservice che voglio mostrare contengono alcuni dati marathi e in inglese. quando vengono dati marathi, mi mostra solo le scatole. qui il mio uscite che assomiglia a questo: output

Qualcuno può sapere che cosa devo bisogno di fare in modo che io possa mostrare i dati in forma marathi. grazie in anticipo

Ecco il mio codice: classe 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; 
     } 
    } 

} 

qui Io lo utilizzo:

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) { 
      } 

     } 

    } 
} 
+0

controllare questo link http://stackoverflow.com/a/10637645/1012284 –

+0

@Agarwal, ho bisogno di 20 reputaion di parlare con te :(Ho solo 5 come sono nuovo qui. – Neha

+0

@Neha: sei riuscito a risolvere questo problema? Se sì allora pls dimmi come? – dd619

risposta

0

Che u veramente bisogno di fare è creare un collegamento XML che contiene il parole marathi e analizza il collegamento xml usando parser json o sax ... per creare i collegamenti xml, hai bisogno del supporto di uno sviluppatore php.

Se hai bisogno di aiuto o supporto, contattami.

+0

plz visitare questo link: view-source: http: //uopnews.unipune. ac.in/_layouts/listfeed.aspx?List={E1D35B2C-88CA-40FF-A956-C01C44A45DC8} e la sua origine di pagina. analizzare questo usando parser SAX. Posso avere due servizi web separati per questo solo per l'inglese e un altro per MArathi? – Neha

+0

Neha, non sono in grado di vedere il contenuto nel collegamento che mi hai appena inviato. Quando provo a vedere il contenuto, ricevo questo messaggio: "Torna al sito Errore" Manca la stringa di query richiesta: Elenco. Risolvi i problemi con Windows SharePoint Services. – DeepakAndroid

+0

non fare clic direttamente su questo link. Copia e poi incollalo in google Chrome – Neha

2

invece di questo:

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

scrittura

Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Marathi-Saras.TTF"); 
+0

posiziona anche il tuo file .ttf nella cartella dei caratteri che devi creare nella cartella delle risorse. –

+0

Penso che l'utente voglia usare due caratteri tipografici e non un singolo ttf. Bocz i dati ricevuti sono una miscela di inglese e marathi. In che modo aiuta davvero? –

+0

@Agarwal, per favore controlla la mia uscita potresti avere un'idea di ciò che effettivamente voglio mostrare – Neha

Problemi correlati