【问题标题】:Android XML Parseing with tamil news API使用泰米尔语新闻 API 进行 Android XML 解析
【发布时间】:2013-03-28 19:58:59
【问题描述】:

我正在使用此 API 进行 XML 解析 “http://cinema.dinamalar.com/rss.php”在列表中获取泰米尔语新闻,但它不起作用..请帮助我..这是我的代码..

public class MainActivity extends Activity {
  TextView tv1,tv2,tv3;
  String URL = "http://cinema.dinamalar.com/rss.php";

  // XML node keys
  String KEY_ITEM = "item"; // parent node
  String KEY_TITLE = "title";
  String KEY_LINK = "link";
  String KEY_DESC = "description";
  String KEY_DATE = "pubDate";


  @SuppressLint("SetJavaScriptEnabled")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1 = (TextView) findViewById(R.id.textView1);
    tv2 = (TextView) findViewById(R.id.textView2);
    tv3 = (TextView) findViewById(R.id.textView3);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

    StrictMode.setThreadPolicy(policy);

    XMLParser parser = new XMLParser();

    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element

    //p.getElementsByTagName('Category')[0].firstChild.wholeText

    tv1.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_TITLE).toString());

    tv2.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_AUTHOR).toString());
    tv3.setText(parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_LINK).toString());
    Toast.makeText(this,parser.getValue((Element) doc.getElementsByTagName(KEY_ITEM).item(0),KEY_LINK),Toast.LENGTH_SHORT).show();

  }
}

【问题讨论】:

  • 它是如何以及在哪里失败的?
  • 显示输出,但它像符号一样。转到我的页面,看看我最近的帖子,请帮助我..

标签: android xml-parsing rss xmldocument


【解决方案1】:

首先您必须了解,在 ICS(4.0) 之前,Android 操作系统(少数三星和 SE 手机除外)不支持泰米尔语。即便如此,它也存在错误,并且 Jelly Bean (4.2) 提供了全面支持。

只有在您的应用中使用 Unicode Tamil 字体时,您才会看到框。原因是系统中没有泰米尔语字体。

1。手动操作方式

这个解决方案有一个变通方法。您所要做的就是下载 Bamini 字体并将其放在您的资产文件夹中。并使用 Bamini 字体创建 TypeFace 并将其设置为 TextView。

Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/Bamini.ttf");
customText1.setTypeface(font1);

现在使用转换器将 Unicode 字体转换为 Bamini 编码。代替 Unicode 文本,将转换后的 Bamini 编码脚本提供到 setText 方法中。

2。使用库

如果您讨厌所有这些手动编码转换,请查看此库

正如我在上面所说的,如果您想在运行应用程序时动态更改编码,请考虑使用我为 Android 编写的库。该库将帮助您将 Unicode 字符串转换为 Bamini、TSCII、TAB、TAM 和 Anjal。

设置非常简单。您只需将该库导入您的 Android 项目并调用该库,如下所示。

// Initialise the Typeface (assumes TSCII, Bamini, Anjal, TAB or TAM font located inside assets/fonts folder)
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/mylai.ttf");
// Initialises the TextView
TextView tv = (TextView)findViewById(R.id.textView1);
//Setting the Typeface
tv.setTypeface(tf);
//Magic happens here ;) encoding conversion
String TSCIIString = TamilUtil.convertToTamil(TamilUtil.TSCII, "வணக்கம் அன்ரொயிட்");
//Setting the new string to TextView
tv.setText(TSCIIString);

库提供了一个示例应用程序。查看该应用程序,了解如何利用该库将 Unicode 字符串转换为 Bamini、TAB、TAM、TSCII 和 Anjal。

您需要使用 Android 中可用的 TypeFace 类。您可以使用 Bamini 或 TSCII 编码(Mylai 是 TSCII 字体)。

【讨论】:

    猜你喜欢
    • 2017-01-24
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多