0

リストビューに 10 行以上あり、JSON を使用して Web URL からレコードを取得していますが、次のように各行に対して特定のインテントを呼び出したいと考えていますthis: http://domainname.com/s/b ) など、ListActivity クラスに追加する必要があるコードと呼び出す場所を提案してください....

public class MainActivity extends Activity {

ListView mListView;

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

    // URL to the JSON data 
    String strUrl = "http://domainname.in/first.php/count/";

    // Creating a new non-ui thread task to download json data 
    DownloadTask downloadTask = new DownloadTask();

    // Starting the download process
    downloadTask.execute(strUrl);

    // Getting a reference to ListView of activity_main
    mListView = (ListView) findViewById(R.id.lv_count);
 }
4

2 に答える 2

1

これは、独自のカスタム アダプターを作成することで実現できます。以下のように:

  class CustomAdapter extends ArrayAdapter {

    HashMap<String, String> map;
    ArrayList mList;
    public CustomAdapter(Context context, int resource,
            int textViewResourceId, HashMap<String, String> map) {
        super(context, resource, textViewResourceId);
        this.map = map;
        mList = new ArrayList<String>(map.keySet());
    }

    @Override
    public int getCount() {
        return mList.size();
    }

    @Override
    public Object getItem(int position) {
        return mList.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // do your stuff with layouts.
        String item = (String)mList.get(position);
        // either you can set the url as tag to view so that the same url will be
        //retrieved when an item is clicked or declare the map as global variable.
        String url = map.get(item);
        convertView.setTag(url);
        return convertView;
    }
}

/// あなたのアクティビティで

@Override
public void onItemClick(AdapterView<?> adapter, View view,
        int position, long id) {
    // you can get the url from the tag
    String url = view.getTag().toString();
    // or else declare the HashMap as global variable which will be accessible through out the class.
    String url = new ArrayList<String>(map.keySet()).get(position);
    // Now launch web with this url
}
于 2012-09-24T06:01:09.673 に答える
0

ListView各アイテムに指定されたURLでデータを添付する必要があり、ListViewを処理onItemClick()して、選択したアイテムに基づいてListViewアイテムのフェッチURLを取得し、WebViewでリンクを開くことができます。

于 2012-09-24T05:19:31.423 に答える