【问题标题】:list new activity [duplicate]列出新活动[重复]
【发布时间】:2011-11-26 03:42:17
【问题描述】:

可能重复:
list new list activty

当我按下列表的任何一行时,我想开始新的不同活动。谁能给我一个例子来说明如何做到这一点?

【问题讨论】:

    标签: android listview android-activity


    【解决方案1】:

    您可以将 xjaphx 代码用于列表视图。如果您为您的列表视图使用自定义适配器,那么您可以使用下面的代码..

          listview.setAdapter(new customeAdapter(this));
    

    CustomAdapter 的类如下

    class CustomAdapter extends BaseAdapter{
        private Context context;
    
        CustomAdapter(Context context)
        {
            this.context=context;
    
        }
    
        @Override
        public int getCount() {         
            return 5;//size of listview
        }
    
        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }
    
        @Override
        public long getItemId(int arg1) {
            // TODO Auto-generated method stub
            return arg1;
        }
    
        @Override
        public View getView(final int position, View view, ViewGroup viewgroup) {
    
            ViewContainer holder = null;
            LayoutInflater inflater =  LayoutInflater.from(context);
         if (view == null) 
         {
    
             view = inflater.inflate(R.layout.myfeedlist, null);
            holder = new ViewContainer();
            holder.feedTitle = (TextView) view.findViewById(R.id.title);
    
            holder.arrow=(ImageView)view.findViewById(R.id.arrow_imageview);
            view.setTag(holder);
         }
         else
         {
             holder = (ViewContainer) view.getTag();
         }
             holder.feedTitle.setText(mylist.get(position));
             holder.feedTitle.setTextColor(Color.YELLOW);
    
    
             holder.arrow.setImageResource(R.drawable.arrow);
    
             view.setOnClickListener(new OnClickListener() {
    
                 @Override
                 public void onClick(View v)
                 {
                     Intent intent=new Intent(currentclass.this,DifferentActivity.class);
    
                     startActivity(intent);
                     finish(); 
    
                 }
             });
    
         return view;
        }
    
    }
    
       class    ViewContainer
      {
    TextView feedTitle;
    ImageView arrow;
       }    
    

    【讨论】:

      【解决方案2】:

      类似这样的:

      public class MainAcitvity {
          ListView mList = null;
      
          public void onCreate() {
      
              // load list view
              mList = (ListView) findViewById(....);
      
              // set whatever data and adapter..
              mList.setAdapter(...);
      
              // set a item click
              mList.setOnItemClickListener( new OnItemClickListener() {
      
                  public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {
                      Intent i = new Intent(MainActivity.this, DifferentActivity.class) // set your Different activity class here
                      MainActivity.startActivity(i);
                  }   
              });
      
          }
      }
      

      【讨论】:

        【解决方案3】:

        如果您有多个不同的活动,请确保确定要开始哪个活动。

        我的示例偏离了列表视图顺序不变的假设。

        Context mContext = this;
        ...
        
        public void onItemClick( AdapterView<?> parent, View view, int position, long id) {
          if(id == 0) {
            mContext.startActivity(new Intent(Main.this,Activity0.class));
          } else if (id == 1) {
            mContext.startActivity(new Intent(Main.this,Activity1.class));
          }
        }
        

        针对每个不同的活动等等。

        请注意,您只需一行即可启动 Activity,节省输入时间和极少的内存。

        【讨论】:

          【解决方案4】:

          可以使用 swith(){} 来实现。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-26
            • 2014-02-19
            • 2017-06-02
            • 1970-01-01
            • 2016-06-07
            • 1970-01-01
            相关资源
            最近更新 更多