使用简单的屏幕连接自定义列表视图

时间:2014-06-10 06:21:55

标签: android

我开发了一个自定义列表视图和简单屏幕的应用程序。 如何连接这两个屏幕。例如,如果我点击医疗保健目标,应该会出现第二个屏幕(即App2Activity)。

主页的代码如下:

package com.androidexample.customlistview;

import java.util.ArrayList;

import android.os.Bundle;
import android.widget.ListView;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;


public class CustomListViewAndroidExample extends Activity {

    ListView list;
    CustomAdapter adapter;
    public  CustomListViewAndroidExample CustomListView = null;
    public  ArrayList<ListModel> CustomListViewValuesArr = new ArrayList<ListModel>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom_list_view_android_example);

        CustomListView = this;

        /******** Take some data in Arraylist ( CustomListViewValuesArr ) ***********/
        setListData();

        Resources res =getResources(); 
        list=(ListView)findViewById(R.id.list);

        /**************** Create Custom Adapter *********/
        adapter=new CustomAdapter(CustomListView, CustomListViewValuesArr,res);
        list.setAdapter(adapter);

    }

    /****** Function to set data in ArrayList *************/
    public void setListData()
    {

        final ListModel sched = new ListModel();
         sched.setCompanyName("HealthCareTeam");
         sched.setImage("image"+0);
         CustomListViewValuesArr.add(sched);

         final ListModel sched1 = new ListModel();
         sched1.setCompanyName("HealthCareGoals");
         sched1.setImage("image"+1);
         CustomListViewValuesArr.add(sched1);

         final ListModel sched2= new ListModel();
         sched2.setCompanyName("TestResults");
         sched2.setImage("image"+2);
         CustomListViewValuesArr.add(sched2);

         final ListModel sched3= new ListModel();
         sched3.setCompanyName("Medication");
         sched3.setImage("image"+3);
         CustomListViewValuesArr.add(sched3);

         final ListModel sched4= new ListModel();
         sched4.setCompanyName("Exercise");
         sched4.setImage("image"+4);
         CustomListViewValuesArr.add(sched4);

         final ListModel sched5 = new ListModel();
         sched5.setCompanyName("Diet");
         sched5.setImage("image"+5);
         CustomListViewValuesArr.add(sched5);

         final ListModel sched6= new ListModel();
         sched6.setCompanyName("FindHospitals");
         sched6.setImage("image"+6);
         CustomListViewValuesArr.add(sched6);

         final ListModel sched7= new ListModel();
         sched7.setCompanyName("Settings");
         sched7.setImage("image"+7);
         CustomListViewValuesArr.add(sched7);



    }

    public void onItemClick(int mPosition)
    {
        ListModel tempValues = (ListModel) CustomListViewValuesArr.get(mPosition);

        Toast.makeText(CustomListView, 
                ""+tempValues.getCompanyName()+" \nImage:"+tempValues.getImage(), 
                Toast.LENGTH_LONG)
        .show();
    }


}

屏幕2的代码如下:

package com.example.myandroidapp1;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class App2Activity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_app2);

    }

}

如何连接这两个页面。请帮助..

7 个答案:

答案 0 :(得分:1)

您可以像这样使用第二个活动....或者每个列表项单击并根据需要打开不同的活动。

lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
          switch(position){
          case 0:
              Intent firstIntent = new Intent(yorclass.this, App2Activity.class);
              startActivity(firstIntent);
              break;  
          case 1:
              Intent secondintent = new Intent(yourclass.this, App3Activity.class);
              startActivity(secondintent);
              break;

答案 1 :(得分:1)

你可以像这样使用

MaainActivity

public class MainActivity extends Activity {
private EditText et;
ListView list;
String[] web = {
        "A",
        "G",
        "Gt",
        "L",
        "H",
        "Ln",
        "Hli",
        "Hi",
        "Ht",
        "Jo",
        "Gan"


} ;

Integer[] imageId = {
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs,
        R.drawable.imagecxvs


};
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


            CustomList adapter = new CustomList(MainActivity.this, web, imageId);
            list=(ListView)findViewById(R.id.list);
                      list.setAdapter(adapter);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    switch (position) {
                    case 0:
                        Intent i = new Intent (MainActivity.this , Good_mornig.class);
                        startActivity(i);
                        break;
                    case 1 :
                    Intent ge = new Intent (MainActivity.this , Good_evening.class);
                    startActivity(ge);
                    break;
                    case 2 :
                        Intent gn = new Intent (MainActivity.this , Good_night.class);
                        startActivity(gn);
                        break;
                    case 3 :
                        Intent lv = new Intent (MainActivity.this , Love_sms.class);
                        startActivity(lv);
                        break;
                    case 4 :
                        Intent ht = new Intent (MainActivity.this , Hate_sms.class);
                        startActivity(ht);
                        break;
                    case 5 :
                        Intent lvp = new Intent (MainActivity.this , Lovely_person.class);
                        startActivity(lvp);
                        break;
                    case 6 :
                        Intent hdiwali = new Intent (MainActivity.this , Happy_diwali.class);
                        startActivity(hdiwali);
                        break;
                    case 7 :
                        Intent hdlti = new Intent (MainActivity.this , Happy_dhuleti.class);
                        startActivity(hdlti);
                        break;
                    case 8 :
                        Intent hj = new Intent (MainActivity.this , Happy_janmastmi.class);
                        startActivity(hj);
                        break;
                    case 9 :
                        Intent jokes = new Intent (MainActivity.this , Jokes.class);
                        startActivity(jokes);
                        break;  
                    case 10 :
                        Intent gc = new Intent (MainActivity.this , Ganeshchturthi.class);
                        startActivity(gc);
                        break;  


                    }
                  //  Toast.makeText(MainActivity.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show();

                };



            });
}
}

适配器(CustomeList)

 public class CustomList extends ArrayAdapter<String>{

 private final Activity context;
 private final String[] web;
 private final Integer[] imageId;
 public CustomList(Activity context,
 String[] web, Integer[] imageId) {
 super(context, R.layout.list_single, web);
 this.context = context;
this.web = web;
this.imageId = imageId;

}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_single, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);

ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(web[position]);

imageView.setImageResource(imageId[position]);
return rowView;
}
 }

答案 2 :(得分:0)

您可以使用Intent导航到其他活动。阅读给定文档以获取详细信息和用法。即使您可以在Intents and Intent Filters文档中找到更多代码和详细信息。

答案 3 :(得分:0)

使用下面的代码

Intent i = new Intent(activityone.this, activitytwo.class);
startActivity(i);

答案 4 :(得分:0)

意图是要走的路。使用以下代码:

 Intent intent = new Intent(CustomListViewAndroidExample.this, App2Activity.class);
startActivity(intent); 

答案 5 :(得分:0)

试试这个示例代码,了解如何使用viewPager和Fragments。

之后,您可以使用碎片感觉更舒适,它们更灵活,但更脆弱。 (IMO,谨慎处理)

  
    

https://github.com/ProMobile/ViewPagerTutorial

  

答案 6 :(得分:0)

context.startActivity(context,App2Activity.class);