2012-03-09 13 views
8

テキストアイテムのリストを画面に表示してクリック可能にする必要があります。したがって、Webアプリケーション上のリンクのリストのようなものになります。Androidアプリ - アイテムのリストを表示してクリック可能にする方法

Androidのアクティビティ画面でどうすればいいですか?

これは、データベースからプルしてリンクとしてすべて表示する必要がある項目の乱数です。

どうすればいいのでしょうか?

答えて

3

ListViewを使用してください。それは非常に簡単です、ListActivityを作成し、あなたの品物をAdapterの中に入れて、AdapterListActivityと設定してください。

あなたはListFragmentと呼ばれる新しいパラダイムもあり、リストビューhere

1

についての詳細を読むことができます。

私は以前ListViewを使用していましたが、断片アプローチを好んでいます。アイテムを選択すると画面上の別の領域とのやりとりが非常に柔軟で、わずかなコードしか必要としないため、ここ

public class Select_FoodCategories_Fragment extends android.app.ListFragment { 
    private static final boolean DEBUG = true; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    if (DEBUG) 
     Log.i(this.getClass().getSimpleName(), " ->" 
      + Thread.currentThread().getStackTrace()[2].getMethodName()); 
    super.onCreate(savedInstanceState); 

    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    if (DEBUG) 
     Log.i(this.getClass().getSimpleName(), " ->" 
      + Thread.currentThread().getStackTrace()[2].getMethodName()); 
    HoldingActivity a = (HoldingActivity) getActivity(); 
    //accessing a variable of the activity is easy 
    a.visibleListViewInFragment = getListView(); 

    List<XYZ> listTodisplay = a.getListToDisplay(); 

    MyAdapter adapter = new MyAdapter(
     getActivity(), 0, listTodisplay); 
    setListAdapter(adapter); 

    } 

    @Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
    if (DEBUG) 
     Log.i(this.getClass().getSimpleName(), " ->" 
      + Thread.currentThread().getStackTrace()[2].getMethodName()); 
     XYZ item = (XYZ) getListAdapter() 
     .getItem(position); 

    } 

} 

詳細はこちらから:ちょうど一例

ところでhttp://developer.android.com/reference/android/app/ListFragment.html

は、私はそれが新しい断片のコンセプトに慣れるために、それは本当に価値がある見つける - それだけで生きてはるかに簡単になります - タブレット上のesp!それはアルトはい、あなたがそれを行うことができます私の経験

8

にはるかに速く、全体のコンセプトを理解するのに役立ちますので、 - 私はわざとでデバッグ文を残した

PS。 DbからデータをフェッチするDataExchangeクラスを作成します。 文字列を配列に格納します。

データベースから取得した文字列の配列を表示するArrayAdapterを作成します。

public class AndroidListViewActivity extends ListActivity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // storing string resources into Array 
    String[] numbers = {"one","two","three","four"} 
    // here you store the array of string you got from the database 

    // Binding Array to ListAdapter 
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label,  numbers)); 
    // refer the ArrayAdapter Document in developer.android.com 
    ListView lv = getListView(); 

    // listening to single list item on click 
    lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

      // selected item 
      String num = ((TextView) view).getText().toString(); 

      // Launching new Activity on selecting single List Item 
      Intent i = new Intent(getApplicationContext(), SingleListItem.class); 
      // sending data to new activity 
      i.putExtra("number", num); 
      startActivity(i); 

     } 
    }); 
} 
} 

ため

あなたはそれに応じて様々なレイアウトファイルを作成する必要が

public class SingleListItem extends Activity{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.single_list_item_view); 

    TextView txtProduct = (TextView) findViewById(R.id.product_label); 

    Intent i = getIntent(); 
    // getting attached intent data 
    String product = i.getStringExtra("number"); 
    // displaying selected product name 
    txtProduct.setText(product); 

} 
} 

する必要がありますクリックした特定の項目を表示するにはsecondActivity .. 希望はこれが役立ちます:)

関連する問題