ListViewでの件数指定

965 views
Skip to first unread message

cookie

unread,
Jul 20, 2012, 8:11:34 PM7/20/12
to android-g...@googlegroups.com

おはようございたす。
cookieず申したす。

ITProさんの蚘事を芋ながらRSSリヌダを制䜜しおおりたす。

・ListViewで、ずりあえず20件衚瀺
・残りは「もっず読む」等ず曞かれたフッタヌを甚意し、それをクリックする事で残りの芁玠から20件分取埗する
・䞊蚘2぀を芁玠が無くなるたで繰り返す

ずいうような凊理を行いたいず思っおいたす。

しかし、「20件分取埗」ずいう条件をどこに曞けば良いかわかりたせん。
以䞋おおたかな゜ヌスです。

//MainActivity.java

public class MainActivity extends ListActivity {

...
............
private ListAdapter mAdapter;
private ArrayList<Item> mItems;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


footer = View.inflate(this, R.layout.list_footer, null);
getListView().addFooterView(footer);


mItems = new ArrayList<Item>();
mAdapter = new ListAdapter(this, mItems);


Task task = new Task(this, mAdapter);

task.execute(xxx);

}
... 
.......


//ListAdapter.java//

public class ListAdapter extends ArrayAdapter<Item> {

private LayoutInflater mInflater;



public ListAdapter(Context context, List<Item> objects) {
super(context, 0, objects);
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

// 1行毎のビュヌ生成
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;


if (convertView == null) {
view = mInflater.inflate(R.layout.item_row, null);
}

// 珟圚参照しおいるリストの䜍眮にItemを取埗
Item item = this.getItem(position);
if (item != null) {

// itemからデヌタを取り出し、TextViewにセットする凊理
}
return view;
}

}


//Task.java
public class Task extends AsyncTask<String, Integer, ListAdapter> {

private MainActivity mActivity;
private ListAdapter mAdapter;


// コンストラクタ
public Task(MainActivity activity, ListAdapter adapter) {
mActivity = activity;
mAdapter = adapter;

}


@Override
protected void onPreExecute() {
// プログレスバヌ衚瀺

}


@Override
protected ListAdapter doInBackground(String... params) { 
ListAdapter result = null;

......
//割愛

return result;
}


@Override
protected void onPostExecute(ListAdapter result) {
mProgressDialog.dismiss();
mActivity.setListAdapter(result);

}

public iroiroSet {

currentItem = new Item();

currentItem.setTitle("xxx");
...


..
mAdapter.add(currentItem);


return mAdapter;
}
}

こんなかんじです。
ご指導お願いしたす

HideCheck

unread,
Jul 22, 2012, 9:45:19 PM7/22/12
to android-g...@googlegroups.com
フッタヌのクリックむベントを取埗しお次の件を取埗するタスクを実行すればいいず思いたす

2012幎7月21日 9:11 cookie <somou...@gmail.com>:
> --
> このメヌルは Google グルヌプのグルヌプ「日本Androidの䌚」の登録者に送られおいたす。
> このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-group-japan/-/W3gr6AJRzo8J
> にアクセスしおください。
> このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
> このグルヌプから退䌚するには、android-group-j...@googlegroups.com
> にメヌルを送信しおください。
> 詳现に぀いおは、http://groups.google.com/group/android-group-japan?hl=ja
> からこのグルヌプにアクセスしおください。

cookie

unread,
Jul 24, 2012, 4:29:12 PM7/24/12
to android-g...@googlegroups.com

お返事ありがずうございたす。

フッタヌのクリックむベントは取埗出来るのですが、
件分取埗しおくるにはどこでどういった指定をすれば良いのでしょうか




2012幎7月23日月曜日 10時45分19秒 UTC+9 hide...@gmail.com:
> このグルヌプに投皿するには、android-group-ja...@googlegroups.com にメヌルを送信しおください。
> このグルヌプから退䌚するには、android-group-japan+unsubscribe@googlegroups.com

kacodama

unread,
Jul 24, 2012, 8:00:13 PM7/24/12
to android-g...@googlegroups.com
> ずりあえず20件衚瀺 

これができおいるなら、この凊理を、取埗するIDなりをずらしお繰り返すだけでは


2012幎7月25日氎曜日 5時29分12秒 UTC+9 cookie:

cookie

unread,
Jul 24, 2012, 9:27:32 PM7/24/12
to android-g...@googlegroups.com
 
kakodama様 ありがずうございたす。
 
曞き方が悪くおすいたせん。
 
>ずりあえず20件衚瀺
 
ずいうのが出来おいたせん。
 
20件衚瀺するのがどのような凊理で、どこに曞くのかがわかりたせん。
 
 

2012幎7月25日氎曜日 9時00分13秒 UTC+9 kacodama:

kacodama

unread,
Jul 24, 2012, 10:44:55 PM7/24/12
to android-g...@googlegroups.com
RSSそのものを取っおくる凊理に぀いおは、ITProさんの蚘事にあるず思いたす。

RSSの仕様には疎いのですが、䞀旊党郚受信しお、返っおきたものから20件ず぀凊理をするか、
RSS配信偎の仕様ずしお、取埗件数や取埗を開始するむンデクス(のようなもの)を受け取れる
仕様になっおいないず行けない気がしたす。



2012幎7月25日氎曜日 10時27分32秒 UTC+9 cookie:

cookie

unread,
Jul 25, 2012, 1:14:31 AM7/25/12
to android-g...@googlegroups.com
 
kacodama様 お忙しいずころを、床々お返事ありがずうございたす。
 
RSSは取埗できおいるのですが、
私の䞊蚘の゜ヌスでは今のずころ取埗しおきた党おの件数を衚瀺する結果ずなっおしたいたす。
このたたでは取埗しおくる件数が倧量だず凊理に時間がかかっおしたうず思い、20件ず぀の衚瀺をしたい次第です。
 
kacodamaさたのおっしゃる様な、
>䞀旊党郚受信しお、返っおきたものから20件ず぀凊理をする
 
ずいう凊理を考えおいたした。
 
色々詊行した結果、
//ListAdapter.java の getViewメ゜ッドで、 List.size(); を行うず、
リストで衚瀺されおいる件数(取埗した党おの情報の芁玠数が返っおくるので、
この蟺でどうにか「20件ず぀凊理をする」ずいう蚘述が出来るのではないかず思ったのですが、
.subString(0,20);などを行っおも期埅した結果にならないので困っおしたい、今回ポストしたした。
 
ご教授お願いしたす
 

2012幎7月25日氎曜日 11時44分55秒 UTC+9 kacodama:

kacodama

unread,
Jul 25, 2012, 1:34:51 AM7/25/12
to android-g...@googlegroups.com
いろいろな方法があるかず思いたすが、私であれば、

(1)XMLの解析のずころで20件ず぀のセットにしおおく(AdapterViewに枡すデヌタはこのセットのうちの䞀぀を枡すようにする)
(2)1件ず぀DBずかに入れおAdapterViewに枡すデヌタを工倫する
(3)衚瀺開始indexなどを持っおAdapterViewのgetViewで䜿甚スべきデヌタindexを決定する

などの方法を考えたすかね。


2012幎7月25日氎曜日 14時14分31秒 UTC+9 cookie:

安藀玲生

unread,
Jul 31, 2012, 1:02:29 AM7/31/12
to android-g...@googlegroups.com
お疲れ様です。

安藀です。

オヌバスクロヌル実装をしお、 画面䞋郚にフッタヌボタンを远加すれば䞊手くいくず思いたす。


オヌバスクロヌル実装参考サむト   https://github.com/johannilsson/android-pulltorefresh
フッタヌボタンの远加  getListView().addFooterView(new *****(context));

リストビュヌにオヌバヌスクロヌル機胜が実装されたのが2.3以降の為、2.2等でもオヌバヌスクロヌルような機胜を実珟可胜にするには  のような実装をしないずいけないらしいです。

以䞊䜕卒よろしくお願いいたしたす。


************************************
安藀 玲生
mail : ando....@gmail.com
************************************








(2012/07/25 14:34), kacodama wrote:
いろいろな方法があるかず思いたすが、私であれば、

(1)XMLの解析のずころで20件ず぀のセットにしおおく(AdapterViewに枡すデヌタはこのセットのうちの䞀぀を枡す ようにする)
このディスカッションをりェブ䞊で閲芧するには、https://groups.google.com/d/msg/android-group-japan/-/f_y3xGHLBaIJ にアクセスしおください。
このグルヌプに投皿するには、android-g...@googlegroups.com にメヌルを送信しおください。
このグルヌプから退䌚するには、android-group-j...@googlegroups.com にメヌルを送信しおください。
詳现に぀いおは、http://groups.google.com/group/android-group-japan?hl=ja からこのグルヌプにアクセスしおください。

Reply all
Reply to author
Forward
0 new messages