0

画像とリンク機能を備えたリストビューもあります。必要なのは、リストビューの各アイテムにボタンを作成することです。ボタンをクリックすると、別のアクティビティに移動する必要があります。そのアクティビティページでは、ボタンをクリックしてそれぞれxmlファイルを開きます。リストビューのJavaファイルにxmlファイルの詳細を事前にハードコーディングします。その方法を説明します。

public class SouthIndianvegrecipes  extends Activity {

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

        ArrayList<Recipedetails1> image_details = GetSearchResults();

        final ListView lv1 = (ListView) findViewById(R.id.listV1_main);
        lv1.setAdapter(new ItemListBaseAdapter1(this, image_details));

        lv1.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
                Object o = lv1.getItemAtPosition(position);
                Recipedetails1 obj_itemDetails = (Recipedetails1)o;
                Toast.makeText(SouthIndianvegrecipes.this, "You have chosen : " + " " + obj_itemDetails.getName1(), Toast.LENGTH_LONG).show();


            } 
        });
    }

    private ArrayList<Recipedetails1> GetSearchResults(){
        ArrayList<Recipedetails1> results = new ArrayList<Recipedetails1>();

        Recipedetails1 item_details = new Recipedetails1();
        item_details.setName1("Vegterian");
        item_details.setItemDescription1("Recipes made by raw materials");
        item_details.setUrlWiki("https://www.youtube.com/watch?v=C_r0mFvMSfU");
        item_details.setImageNumber1(1);
        results.add(item_details);

        item_details = new Recipedetails1();
        item_details.setName1("Non-Vegterian");
        item_details.setItemDescription1("Flesh of sweet animals");
        item_details.setUrlWiki("https://www.youtube.com/watch?v=C_r0mFvMSfU");
        item_details.setImageNumber1(2);
        results.add(item_details);

        item_details = new Recipedetails1();
        item_details.setName1("Pickels");
        item_details.setItemDescription1("Touchable dish  by Homemade");
        item_details.setUrlWiki("https://www.youtube.com/watch?v=C_r0mFvMSfU");
        item_details.setImageNumber1(3);
        results.add(item_details);

        item_details = new Recipedetails1();
        item_details.setName1("Soups");
        item_details.setItemDescription1("Startup for our food");
        item_details.setUrlWiki("https://www.youtube.com/watch?v=C_r0mFvMSfU");
        item_details.setImageNumber1(4);
        results.add(item_details);




        return results;
    }

}

4

3 に答える 3

1

このように、ItemListBaseAdapter1 の getView() メソッドでボタンに setOnClickListener を設定するだけです。

    class ItemListBaseAdapter1 extends BaseAdapter
    {

    private Activity mActivity;
    public ItemListBaseAdapter1(Activity activity, ...)
    {
        mActivity = activity;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        // TODO: get view here
        final Recipedetails1 item = (Recipedetails1) getItem(position);
        theButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(mActivity, [your activity class]);
                intent.putExtra("The Link Key", item.getUrlWiki());
                mActivity.startActivity(intent);
            }
        });
        return view;
    }

}

ターゲットのアクティビティでは、次のようにリンクを取得します。

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    String link = getIntent.getString("The Link Key", null);
}
于 2013-03-07T04:41:56.990 に答える
0

追加する必要がありますandroid:descendantFocusability="blocksDescendants"

ここから解決策を見つけました

https://stackoverflow.com/a/14372750/1136023

これを使用して、内容を渡しますintent.putExtra("TAG", Data);

于 2013-03-07T03:45:41.903 に答える
0

あなたが言ったように、リストのリスト項目にボタンがあります。ボタンクリックリスナーで知っているように、onclicklistenerのメソッドでビューを取得しました

new OnClickListener()
{
@Override
public void onClick(View view)
{}
}

here ビューには、ボタンが設定されているビューを返す getparent() メソッドがあります。ログを印刷することで確認できます。ボタンの親を取得した場合、1 つの子ビューがボタンである親のすべての子ビューも取得できます。すべての子ビューから値を取得して、次のアクティビティに送信できます。ボタンの親がリスト項目のビューに別の親を持っている場合、getparent() メソッドを呼び出して親ビューの親を取得することもできます。

ビューには親子関係があることに注意してください。すべての子が必要な場合は、親を取得する必要があります。

于 2013-03-07T04:51:11.640 に答える