需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等。。。这些都是或多或少的,所以需要动态添加:

首先自定义View(linearLayout):

package cn.qust.fang.widget;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.widget.MediaController;import io.vov.vitamio.widget.VideoView;import android.app.Activity;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.net.Uri;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import cn.qust.fang.CHANGLIANG.ChangLiang;import cn.qust.fang.DB.DBManager;import cn.qust.fang.domain.Shop;import cn.qust.fang.main.MvplayActivity123;import cn.qust.fang.main.R;public class RightTopChildsLayouts extends LinearLayout {    Shop shop=null;private TextView text_name_sub,textview_mvurl;View view;    MvplayActivity123 currentactivity;    /**     * 配菜间  消毒间什么的     */    String zi_name;    /**\     * 配菜间 消毒间的 的视频url     */    String zi_mvurl;public RightTopChildsLayouts(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}//自定义构造函数public RightTopChildsLayouts(MvplayActivity123 context,Shop shop,String zi_name,String zi_mvurl){super(context );view = LayoutInflater.from(context).inflate(R.layout.sub_right_top, null);text_name_sub=(TextView) view.findViewById(R.id.textview1);/** * 存mv_url */textview_mvurl=(TextView) view.findViewById(R.id.textview_gone);//把获得的view加载到这个控件中addView(view);this.currentactivity=context;this.shop=shop;this.zi_mvurl=zi_mvurl;this.zi_name=zi_name;text_name_sub.setText(zi_name);textview_mvurl.setText(zi_mvurl);view.setOnClickListener(new OnClickListener(){  //点击事件@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(!getZi_mvurl().equals("collect")){//若不是收藏  就切换视频System.out.println("点击=====RightTopChildsLayouts==zi_name========"+getZi_name());VideoView mVideoView =currentactivity.getmVideoView();mVideoView.pause();Uri uri = Uri.parse(getZi_mvurl());mVideoView.setVideoURI(uri);mVideoView.start();}else {/** * 在这里进行收藏 如果已收藏  显示已收藏 */System.out.println("点击=收藏====RightTopChildsLayouts==zi_name========"+getZi_name());if (getShop() == null)Toast.makeText(getContext(), "收藏失败", Toast.LENGTH_SHORT).show();if (!(new DBManager(getContext()).exits(getShop().getShop_id()))) {save2db(getShop());} else {//Toast.makeText(context, "已收藏", Toast.LENGTH_SHORT).show();text_name_sub.setText(R.string.haven_collected);}}}});}private void save2db(Shop shop) {ContentResolver resolver = getContext().getContentResolver();ContentValues values = new ContentValues();// System.out.println("baocun11前--------");values.put("shop_name", shop.getShopname());values.put("address", shop.getAddress());values.put("mv_url", shop.getMv_url());values.put("logo_url", shop.getLogo_url());values.put("msg", shop.getMsg());values.put("shop_id", shop.getShop_id());values.put("shop_phone", shop.getShop_phone());             Uri url = Uri.parse("content://fang.ContentProvider.MyContentProvider_media/"+ ChangLiang.TABLE);resolver.insert(url, values);// System.out.println("baocun11成功-----------");//Toast.makeText(getContext(), "收藏成功", Toast.LENGTH_SHORT).show();}public Shop getShop() {return shop;}public void setShop(Shop shop) {this.shop = shop;}public String getZi_name() {return zi_name;}public void setZi_name(String zi_name) {this.zi_name = zi_name;}public String getZi_mvurl() {return zi_mvurl;}public void setZi_mvurl(String zi_mvurl) {this.zi_mvurl = zi_mvurl;}//这个可能不太合适@Overridepublic void setOnClickListener(OnClickListener l) {// TODO Auto-generated method stubsuper.setOnClickListener(l);//this.currentactivity.finish();VideoView mVideoView =currentactivity.getmVideoView();mVideoView.pause();Uri uri = Uri.parse(zi_name);mVideoView.setVideoURI(uri);mVideoView.start();mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mediaPlayer) {// optional need Vitamio 4.0mediaPlayer.setPlaybackSpeed(1.0f);}});}}
上面用到的sub_right_top.xml如下:

<pre name="code" class="html"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/container"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.aaaa.MainActivity"    tools:ignore="MergeRootFrame"><LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >    <!-- <ImageView        android:id="@+id/imageView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_vertical"        android:layout_marginLeft="8dp"        android:src="@drawable/mm_title_btn_compose_normal" /> -->    <TextView        android:id="@+id/textview1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="8dp"        android:text="洗菜间"        android:textColor="#fff"        android:textSize="18sp" />         <TextView        android:id="@+id/textview_gone"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="8dp"        android:text="隐藏"        android:textColor="#fff"        android:textSize="18sp"         android:visibility="gone"        />                    </LinearLayout>    </RelativeLayout>


  
下面是动态添加的代码:在他们的父布局一加载的时候开始动态添加:

public class MainTopRightDialog extends Activity {// private MyDialog dialog;private LinearLayout layout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_top_right_dialog);// dialog=new MyDialog(this);layout = (LinearLayout) findViewById(R.id.main_dialog_layout);Shop shop1 = (Shop) getIntent().getSerializableExtra("shop_inmvplayer");MvplayActivity123 mvplayActivity123 = MvplayActivity123.getinstance();List<Map<String, Object>> mv_urls_list = null;String mv_urls = shop1.getMv_url();if (!mv_urls.equals("null") && mv_urls != null && !mv_urls.equals("")) {try {mv_urls_list = (List<Map<String, Object>>) new ParseJson2List().ParseJson2List(shop1.getMv_url().toString());} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {mv_urls_list = null;return;}RightTopChildsLayouts layout_childs = null;/** * 根据 zi_mvurl 区分是url 还是收藏 若是收藏就为 collect */RightTopChildsLayouts layout_collect = null; ///for (int i = 0; i < mv_urls_list.size(); i++) {layout_childs = new RightTopChildsLayouts(mvplayActivity123, shop1,mv_urls_list.get(i).get("_skey").toString(), mv_urls_list.get(i).get("_svalue").toString());if (layout_childs != null) { /* android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"*/layout.addView(layout_childs,130,LinearLayout.LayoutParams.WRAP_CONTENT);}}/** * 添加收藏 项  若收藏过显示已收藏 */layout_collect=new RightTopChildsLayouts(mvplayActivity123, shop1,(new DBManager(this).exits(shop1.getShop_id())?"已收藏":"收藏"), "collect");layout.addView(layout_collect,130,LinearLayout.LayoutParams.WRAP_CONTENT);/*layout.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!",Toast.LENGTH_SHORT).show();}});*/}@Overridepublic boolean onTouchEvent(MotionEvent event) {finish();return true;}}
这个的布局文件(main_dialog_layout)如下:
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent"          >      <RelativeLayout       android:layout_width="fill_parent"       android:layout_height="fill_parent"         android:layout_marginTop="46dp"                    >            <LinearLayout        android:id="@+id/main_dialog_layout"      android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:orientation="vertical"        android:background="@drawable/title_function_bg" >   <!--  <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"         android:layout_marginBottom="3dp"        >        <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:padding="8dp"        android:text="收藏"        android:textColor="#fff"        android:textSize="18sp"                 />           </LinearLayout>    -->                            </LinearLayout>    </RelativeLayout></RelativeLayout>





更多相关文章

  1. Android中动态刷新从服务器上获取的数据
  2. 【Android】Android(安卓)UI 开发_习题
  3. 动态显示带图片列表【Android】
  4. 自定义toast你需要的都在这里,单例模式,自定义布局,完全自定义,
  5. Android自定义Dialog(仿QQ同步助手退出对话框)
  6. Android中ViewPager和PagerAdapter的简单使用
  7. 动态内存的赋值和修改(Android之JNI)
  8. Android(安卓)Studio——ListView的高级使用
  9. 〖Linux〗Android(安卓)NDK调用已编译好的C/C++动态连接库(so文件

随机推荐

  1. android api code学习--第一个比较完整的
  2. Activity的启动流程(基于Android 10.0源
  3. Android各类属性记录详解,如Edittext
  4. android 自定义进度条颜色
  5. Android -- Looper.prepare()和Looper.lo
  6. 理解 Android 进程启动之全过程
  7. Android监听呼出电话
  8. ubuntu用wifi连接android调试程序的步骤
  9. android4.0 进程回收机制
  10. Android之UI学习篇八:使用GridView实现九