添加多个事件的ListView多个、事件、ListView

2023-09-12 22:28:22 作者:天若有情天亦老。

我搜索计算器,但无法找到一个答案(肯定有一个地方),但我想添加一个活动为每个列表视图输入。我可以用一个意图对其进行管理,但我怎么给每个列表视图输入一个单独的活动。所以要清楚,我要让每一个项目都有一个serperate活动。

I searched stackoverflow but couldnt find a answer(sure there is one somewhere) but I am trying to add a activity for each listview input. I can manage it with one intent but how do I give each listview input a seperate activity. So to be clear, I want to make every item have a serperate activity.

目前使用code发起一个活动,而是希望单独活动,为每一个项目。

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

    // storing string resources into Array
    String[] adobe_products = getResources().getStringArray(R.array.list_products);

    // Binding resources Array to ListAdapter
    this.setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, adobe_products));

    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 product = ((TextView) view).getText().toString();

          // Launching new Activity on selecting single List Item
          Intent i = new Intent(getApplicationContext(), BMICalculatorActivity.class);
          startActivity(i);


      }
    });
}

曾试图加入这个,但它没有工作

private static final int ACTIVITY_0 = 0;
          private static final int ACTIVITY_1 = 1;
          private static final int ACTIVITY_2 = 2;


          protected void onListItemClick(ListView l, View v, int position, long id)
          {
              super.onListItemClick(l, v, position, id);
              final Intent intent = new Intent();
              // Set up different intents based on the item clicked: 
              switch (position)
              {
                  case ACTIVITY_0:
                      intent.setClass(this, listview.activty.BMICalculatorActivity.class);
                      break;
                  case ACTIVITY_1:
                      intent.setClass(this, listview.activty.BodyLog.class);
                      break;

我知道它probally简单的排序,因此任何帮助将是惊人的。谢谢

I know its probally simple to sort so any help would be amazing. Thanks

推荐答案

我想你想是这样的:

     Intent i = null;
     switch (position)
          {
              case ACTIVITY_0:
                  i = new Intent(getApplicationContext(), BMICalculatorActivity.class);
                  break;
              case ACTIVITY_1:
                  i = new Intent(getApplicationContext(), BodyLog.class);
                  break;
          }

      if(i != null)
      {
         startActivity(i);
      }