私は現在、Android で基本的なニュース アグリゲーション アプリを開発中です。そこには多くの負荷があることを知っていますが、Android 開発を始めたばかりの人にとっては、始めるのに適した場所だと思うので、基本的に作成しているだけです。
私の目標は、複数のフィードから記事を表示することです。各フィードには、パルス ニュース アプリのような独自の横方向のスライド リストがあります。これまでのところ、「HorizontalListView」の作成に関するチュートリアルを見つけることができました。現在、以下のような基本的な水平スライド リストビューをアプリに表示しています。
スクリーンショットのリンク: http://www.dev-smart.com/wp-content/uploads/2011/03/device-200x300.png
Pulse アプリのスクリーンショット: http://a1525.phobos.apple.com/us/r1000/080/Purple/v4/ba/6a/01/ba6a01d1-f0b7-4bb7-3f94-5a5761653e3c/mzl.zxnjzzmk.480x480-75. jpg
コード:
public class HorizontalListViewDemo extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listviewdemo);
HorizontalListView listview = (HorizontalListView) findViewById(R.id.listview);
listview.setAdapter(mAdapter);
}
private static String[] dataObjects = new String[]{ "Text #1",
"Text #2",
"Text #3", "Text #4" };
private BaseAdapter mAdapter = new BaseAdapter() {
private OnClickListener mOnButtonClicked = new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(HorizontalListViewDemo.this);
builder.setMessage("hello from " + v);
builder.setPositiveButton("Cool", null);
builder.show();
}
};
@Override
public int getCount() {
return dataObjects.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View retval = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewitem, null);
TextView title = (TextView) retval.findViewById(R.id.title);
Button button = (Button) retval.findViewById(R.id.clickbutton);
button.setOnClickListener(mOnButtonClicked);
title.setText(dataObjects[position]);
return retval;
}
};
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#000"
>
<com.devsmart.android.ui.HorizontalListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:background="#ddd"
/>
</LinearLayout>
</ScrollView>
前述したように、各 HorizontalListView は 1 つのフィードを表し、上記のように関連する記事を表示します。したがって、この開発の次のステップは、ユーザーがアプリ内からフィードを宣言できるように、これらの HorizontalListView の動的な作成を試みることです。これにより、既に定義されているものの下に動的に作成されます。
そのプロセスに関連する他のすべての努力を無視して、既に定義されている XML リストビュー レイアウト id="listview" を再利用できる新しい HorizontalListView を作成するための支援を求めているだけです。すべてのフィードを事前に定義し、一意の ID を持つ一意の XML レイアウトを作成すれば、これを機能させることができることはわかっていますが、既存のレイアウトを再利用する新しい HorizontalListView を定義する方法はあるのでしょうか。
皆さんが私のためにこれについていくつかの光を当てることができることを願っています.
ありがとう
更新 1: ビューを使用していますか?
//Defining main XML file "listviewdemo.xml"
setContentView(R.layout.listviewdemo);
//Creating a new view to apply to my HorizontalListViews, /res/layout/listviewStyle.xml
View view = getLayoutInflater().inflate(R.layout.listviewStyle, null);
//Defining my first HorizontalListView
HorizontalListView listview = (HorizontalListView) view.findViewById(R.id.listviewReuse);
listview.setAdapter(mAdapter);