android:如何在新活动中从列表视图中打开项目?

时间:2013-12-17 16:53:05

标签: android

这里是代码,那就是列表视图! 谢谢! **我想从列表中的行获取信息并在新活动中打开它 该代码处于listView状态,并且存在包含单个项目视图的xml代码

public class HelpFriends extends Activity
{
    ListView dilemasListView;
    MyCustomListAdapter customListAdapter;
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.help_friends); 

        dilemasListView = (ListView) findViewById(R.id.dilemasListView);

        HMCApplication myApp = (HMCApplication)getApplication();
        myApp.getAllDilemasFromServer();
        ArrayList<Dilema> myDilemas = myApp.getDilemas();

        //dilemasListView.setOnItemClickListener(this);


        customListAdapter = new MyCustomListAdapter(this,
                                R.layout.dilema_list_layout,        // layout of a single item in the list
                                myDilemas);
        dilemasListView.setAdapter(customListAdapter);
    }

    // the adapter handles the list
    public class MyCustomListAdapter extends ArrayAdapter<Dilema> 
    {
        // internal list of data 
        ArrayList<Dilema> mItems;

        public MyCustomListAdapter(HelpFriends theActivity,
                int viewResourceId, ArrayList<Dilema> objects)
        {
            super((Context) theActivity, viewResourceId, objects);
            mItems = objects;
        }


         @Override         
         public int getCount()
         {            
             return mItems.size(); 
        }       
         @Override        
         public Dilema getItem(int position)
         {             
             return mItems.get(position);
        }         
         @Override       
         public int getPosition(Dilema item)
         {           
             return mItems.indexOf(item);  
         }  

         @Override      
         public long getItemId(int position)
         {            
             return position;  
         } 

         // getView returns / creates the view for a SINGLE item in the list
        @Override
        public View getView(int position, View convertView, ViewGroup parent) 
        {

            // theUser will be the logic object with all data
            Dilema theDilema = mItems.get(position);

            // row will be the visual object
            LayoutInflater inflater = getLayoutInflater();
            // single_fruit_item_layout is the layout of a single row
            View row = inflater.inflate(R.layout.dilema_list_layout, parent, false);


            // populate the row object from theUser object
            TextView TextVieUsername = (TextView) row.findViewById(R.id.usernameText);
            TextVieUsername.setText(theDilema.getUsername());   

            TextView TextViewQuestion = (TextView) row.findViewById(R.id.questionText);
            TextViewQuestion.setText(theDilema.getQuestion());  

            TextView TextViewTime = (TextView) row.findViewById(R.id.timeText);
            TextViewTime.setText(theDilema.getTime());

            TextView TextViewCategory = (TextView) row.findViewById(R.id.categoryText);
            TextViewCategory.setText(theDilema.getCategory());

            return row;
        }
    }



}

3 个答案:

答案 0 :(得分:0)

将此添加到您的on create ....

dilemasListView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {


                Intent myIntent = new Intent(activityname.this, nextactivity.class);
                startActivityForResult(myIntent, 0);
            }
        }
    });

答案 1 :(得分:0)

使用setOnItemClickListener。在这个onitemclick里面你可以编写新活动调用的代码。

 dilemasListView.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
Intent i = new Intent();
i.setclass(current_activity_name.this, next_activity.class);
startActivity(i);
}
}

答案 2 :(得分:0)

所选项目的信息位于监听器的视图类中:

onItemClick(AdapterView<?> parent, View view,int position, long id) 

您可以使用视图获取值。