在我的活动中我做了
TextView bTitle = (TextView)findViewById(R.id.TextView);
bTitle.setText(Html.fromHtml(title));
其中title是一个字符串
但我在第二行得到一个空指针异常即。的 bTitle.setText(Html.fromHtml(标题));
任何人都可以帮忙???
活动
public class NewsDetails extends ListActivity{
public static final String LOG_TAG = "Infra";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listplaceholder);
super.onStart();
Intent myIntent = getIntent();
String id = myIntent.getStringExtra("content_id");
String title = myIntent.getStringExtra("title");
//Spanned newTitle = Html.fromHtml(title);
//tv.setText(Html.fromHtml(title));
TextView bTitle = (TextView)findViewById(R.id.TextView);
Log.d(LOG_TAG, "What is the value: " + bTitle);
bTitle.setText(Html.fromHtml(title));
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
String xml = XMLfunctions.getBodyXML(id);
String result = xml.replaceAll("<p>", "<p><div align=\"justify\">");
String nXml = result.replaceAll("</p>", "</div></p>");
TextView body = (TextView)findViewById(R.id.TextView1);
body.setText(Html.fromHtml(nXml));
//Spanned body = Html.fromHtml(nXml);
/*HashMap<String, String> map = new HashMap<String, String>();
map.put("title", tv.toString());
map.put("news", tv1.toString());
mylist.add(map);*/
/*ListAdapter adapter = new SimpleAdapter(this, mylist , R.layout.list_item, new String[] { "title", "news" }, new int[] { R.id.item_title, R.id.item_subtitle });
setListAdapter(adapter);
final ListView lv = getListView();
lv.setTextFilterEnabled(true);*/
}
布局 - listplaceholder.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawSelectorOnTop="false" />
<TextView
android:id="@id/android:empty"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="No data"
android:focusable="false"
android:clickable="true"/>
</LinearLayout>
text_view.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/TextView"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textSize="16px"
android:textStyle="bold">
</TextView>
<TextView
android:id="@+id/TextView1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textSize="16px"
android:textStyle="bold">
</TextView>
</LinearLayout>
答案 0 :(得分:2)
您应该为您的布局加载正确的xml
setContentView(R.layout.text_view)
TextView bTitle = (TextView)findViewById(R.id.TextView);
bTitle.setText(Html.fromHtml(title));
答案 1 :(得分:1)
确保您确实拥有
<TextView android:id="@+id/TextView [...]
在您的活动布局xml中查看。
<强>更新强>
在listplaceholder.xml
中,没有TextView
!
如果您使用text_view.xml
布局作为项呈示器,则尝试访问TextView
的代码应放在ListAdapter
实现的getView
方法中!
答案 2 :(得分:1)
我在您的代码中发现了两个问题
1)首先,你的TextView不在listplaceholder.xml中。 所以你将它是空指针...
2)并且您需要在setContentView();
之前添加此代码 Intent myIntent = getIntent();
String id = myIntent.getStringExtra("content_id");
String title = myIntent.getStringExtra("title");
让我知道你想要的列表以及你在哪里调用setAdapter列表,你的适配器在哪里......
答案 3 :(得分:0)
1)确保在您的项目中导入R(而不是从顶部的导入部分导入android.R命名空间)
2)
之后TextView bTitle = (TextView)findViewById(R.id.TextView);
执行日志:
Log.d("debug", "bTitle: " + (bTitle != null));
从终端退房(如果您使用的是Linux,如果是Windows,只需运行logcat)
adb logcat | grep bTitle
这应该告诉您是否从布局中正确获取了TextView(如果它存在于布局中,如@rekaszeru提到的那样)。
3)确保title变量也不为空
答案 4 :(得分:0)
谢谢大家的帮助。我已经用webview替换了textview,因为我在我的应用程序中需要大量的html格式,现在我的文本以正确的格式显示,而且我的应用程序运行正常。
由于