繁体   English   中英

在所有活动中重用自定义列表

[英]Reusing the custom list in all the activities

在我的课程应用程序中,我有带有子课程的课程列表。 课程显示在自定义列表中。 用户单击课程标题后,将打开包含课程详细信息的特定课程活动。 在该活动的“课程内容”文本视图中,单击Clicker。一旦用户单击该文本视图,将打开包含该特定课程的子课程的自定义列表。 我尝试对每门课程的所有子课程使用相同的自定义列表。 而不是为每门课程创建单独的自定义列表。 我试图通过Intent将图像数组和courseTitle数组从课程活动发送到自定义列表活动来实现。 但是不幸的是,在单击课程内容文本视图时,自定义列表活动停止了。

在此处输入图片说明

BigdataActivity(课程活动)

public class BigdataActivity extends Activity {

ImageView logo;
Button phone,mail,whatsapp;
TextView course;
@Override
protected void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_bigdata);

    logo=(ImageView) findViewById(R.id.imageView1);
    LayoutParams params = (LayoutParams) logo.getLayoutParams();
    params.width = 350; params.height=150; params.leftMargin=150;
    logo.setLayoutParams(params);
    course=(TextView) findViewById(R.id.course);
    phone=(Button) findViewById(R.id.button1);
    mail=(Button) findViewById(R.id.button2);
    whatsapp=(Button) findViewById(R.id.button3);
    course.setOnClickListener(new OnClickListener() {



        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            //MyAlert alert=new MyAlert();
            //alert.show(getFragmentManager(), "Fill the Form");

            int activity=1;
            Resources res=getResources();
            String[] courseTitle=res.getStringArray(R.array.BigData);
            int image[] =
            {
              R.drawable.bigdatahad,
              R.drawable.hadoopadmin,R.drawable.bigdataanalytics,
              R.drawable.testing
            };
            Intent intent=new   
            Intent(BigdataActivity.this,BDataDialog.class);
            intent.putExtra("img", image);
            intent.putExtra("course", courseTitle);
            intent.putExtra("activity", activity);
            startActivity(intent);





        }


    });
    phone.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String no="+9187";
            Intent callintent =new Intent(Intent.ACTION_CALL);
            callintent.setData(Uri.parse("tel:"+no));
            startActivity(callintent);

        }
    });

    mail.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            Intent mailintent= new Intent(Intent.ACTION_SEND);
            mailintent.setData(Uri.parse("mailto:"));
            String[] toadd={"info@jpasolutions.in"};
            mailintent.putExtra(Intent.EXTRA_EMAIL,toadd);
            mailintent.setType("message/rfc822");
            Intent chooser = mailintent.createChooser(mailintent, "Send 
            Email");
            startActivity(chooser);
        }
    });

    whatsapp.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            String cont="7290";
            openWhatsappContact(cont);

        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.bigdata, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    int id = item.getItemId();
    if(id==R.id.action_settings){

        startActivityForResult(new 
        Intent(android.provider.Settings.ACTION_SETTINGS), 0);

    }
    return super.onOptionsItemSelected(item);
}


void openWhatsappContact(String number) {


        Uri uri = Uri.parse("smsto:" + number);
        Intent i = new Intent(Intent.ACTION_SENDTO, uri);
        i.setPackage("com.whatsapp");  
        startActivity(Intent.createChooser(i, ""));

}

}

自定义列表活动以列出子课程

公共类BDataDialog扩展了Activity {

ImageView logoview;
ListView list;
String[] courseTitle=getIntent().getStringArrayExtra("course");
int image[]=getIntent().getIntArrayExtra("img");
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_bdata_dialog);
    //logoview=(ImageView) findViewById(R.id.imageView1);
    list=(ListView) findViewById(R.id.listView1);


   // list.setVisibility(View.INVISIBLE);
   /* Resources res=getResources();
    courseTitle=res.getStringArray(R.array.BData);*/
    CourseAdapter listAdapter =new CourseAdapter(this, courseTitle, image);
    list.setAdapter(listAdapter);

    list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> adapter, View arg1, int position,
                long id) {
            // TODO Auto-generated method stub
            String value = (String)adapter.getItemAtPosition(position); 
            int activity =getIntent().getIntExtra("activity", 0);

            if (value == courseTitle[0]){

                switch(activity){
                case 1:
                    Uri uriUrl = Uri.parse("http://www.jpasolutions.net/coursedetails.php?cat_id=1&crs_id=1&sub_id=1"); 
                    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
                    startActivity(launchBrowser);   
                    finish();
                    break;
                case 2:

                    Uri uriUrl1 = Uri.parse("http://www.jpasolutions.net/coursedetails.php?cat_id=1&crs_id=24&sub_id=1"); 
                    Intent launchBrowser1 = new Intent(Intent.ACTION_VIEW, uriUrl1);  
                    startActivity(launchBrowser1);   
                    finish();
                    break;
                }


            }
            else{

                Uri uriUrl = Uri.parse("http://www.jpasolutions.net/coursedetails.php?cat_id=1&crs_id=32&sub_id=1"); 
                Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
                startActivity(launchBrowser);   
                finish();
            }



        }



    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.bdata_dialog, menu);
    return true;
}

}

CourseAdapter类扩展ArrayAdapter {

Context context; int images[];String titleArray[];
CourseAdapter(Context ctx,String[] courseTitle, int imgs[])
{
    super(ctx,R.layout.courseslist,R.id.textView1,courseTitle);
    this.context=ctx;
    this.images=imgs;
    this.titleArray=courseTitle;

}

public View getView(int position, View convertView, ViewGroup parent) 
{
    // TODO Auto-generated method stub
     LayoutInflater inflater=(LayoutInflater) 
     context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
     View row=inflater.inflate(R.layout.courseslist, parent, false);

     ImageView myimage=(ImageView) row.findViewById(R.id.imageView1);
     TextView  textview=(TextView) row.findViewById(R.id.textView1);

     myimage.setImageResource(images[position]);
     textview.setText(titleArray[position]);

    return row;
}

}

请帮助我解决问题。

您的getIntent().getStringArrayExtra("course")返回null ...

尝试:

  • oncreate处理此getIntent()事件。

  • 在启动活动之前,如果您将其他内容放在意图上,请进行验证(如果它们不为空)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM