我想在单击列表项时使用listitem设置textview的文本。 我有物品清单。当我点击一个项目时,它会显示html页面。我有布局来显示HTML页面(使用WebView),标题(TextView)和后退按钮(Imagebutton)。我能够在webview中显示html页面没有任何问题。问题在于标题。当我点击列表的列表项目。我希望在textview中将相同的项目设置为标题。请建议我。我能够干杯子,但我不需要它。我想在textview.please的文本中设置,请参阅下面的代码。
Topics.java
public class Topics extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// storing string resources into Array
String[] topic_sections = getResources().getStringArray(R.array.topic_sections);
// Binding resources Array to ListAdapter
this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, topic_sections));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
change(position);
}
void change(int position){
switch(position){
case 0 :{
Intent intent = new Intent(getApplicationContext(), TopicsDisplay.class);
intent.setData(Uri.parse("file:///android_asset/home.html"));
startActivity(intent);
}
break;
case 1 :{
Intent intent = new Intent(getApplicationContext(), TopicsDisplay.class);
intent.setData(Uri.parse("file:///android_asset/program.html"));
startActivity(intent);}
break;
} } }
TopicsDisplay.java
public class TopicsDisplay extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.topic_display);
WebView webview1 = (WebView) findViewById(R.id.webView1);
webview1.loadUrl(getIntent().getDataString());
webview1.getSettings().setBuiltInZoomControls(true);
webview1.setInitialScale(1);
webview1.setPadding(0, 0, 0, 0);
}
public void finishActivity(View v){
finish();
}
}
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:textColor="#ea9999"
android:background="#000000"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="20sp"
android:textStyle="bold"
android:focusable="false"
android:clickable="false">
</TextView>
topic_display.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/myBackground">
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="42dp"
android:layout_height="42dp"
android:onClick="finishActivity"
android:contentDescription="@string/back"
android:src="@drawable/back_button" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:textStyle="bold"
android:textColor="#000000"
android:gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:paddingLeft="10dp"
android:id="@+id/header"
/>
</RelativeLayout>
<WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/webView1"/>
</LinearLayout>
从列表视图中获取项目后,如何在topic_display布局中的textview文本中设置该listitem。
答案 0 :(得分:2)
我的建议是将想要显示的标题放在Intent的附加内容中。 这意味着,当你打电话时
Intent intent = new Intent(getApplicationContext(), TopicsDisplay.class);
intent.setData(Uri.parse("file:///android_asset/home.html"));
startActivity(intent);
你应该在调用startActivity()方法之前将标题放在Intent的额外内容中(在这两种情况下你都调用了TopicsDisplay活动)
Intent intent = new Intent(getApplicationContext(), TopicsDisplay.class);
intent.setData(Uri.parse("file:///android_asset/home.html"));
intent.putExtra("title", topic_sections[position]);
startActivity(intent);
然后,在TopicsDisplay活动中,您可以通过调用
获取标题getIntent().getStringExtra("title")
最后,你应该在TopicsDisplay.onCreate方法中得到类似的东西:
TextView titleTV = (TextView) findViewById(R.id.header)
titleTV.setText(getIntent().getStringExtra("title"));
希望这有帮助!