真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

解決一個(gè)Android開發(fā)自定義控件問(wèn)題,無(wú)法讀取屬性值

今天玩了一下Android自定義控件,是一個(gè)TextView和ImageButton的組合控件,所有的都寫好了,但是運(yùn)行得不到想要的結(jié)果,找了大半天找不到錯(cuò)誤,代碼如下:

創(chuàng)新互聯(lián)是專業(yè)的黃山網(wǎng)站建設(shè)公司,黃山接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行黃山網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1、工程目錄結(jié)構(gòu)

解決一個(gè) Android開發(fā)自定義控件問(wèn)題,無(wú)法讀取屬性值

2、p_w_picpathbtn_with_text.xml


   android:layout_width="match_parent"android:layout_height="match_parent"
   android:background="#f5f5f5"
   android:gravity="center">
   android:id="@+id/tvImageBtnWithText"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>
          android:id="@+id/p_w_picpathBtnImageBtnWithText"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

3、attrs.xml



   
       
       
   

4、ImageBtnWithText.java

package com.example.administrator.myview;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * Created by 猿團(tuán)Hocking on 2016/2/23.
 */
public class ImageBtnWithText  extends LinearLayout {
    private ImageButton mBtn =null;
    private TextView  mTv = null;


    public ImageBtnWithText(Context context, AttributeSet attrs) {
        super(context, attrs);
        View view = LayoutInflater.from(context).inflate(R.layout.p_w_picpathbtn_with_text,this,true);
        mTv = (TextView)view.findViewById(R.id.tvImageBtnWithText);
        mBtn = (ImageButton) view.findViewById(R.id.p_w_picpathBtnImageBtnWithText);

        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ImageBtnWithText);
        CharSequence  text = a.getText(R.styleable.ImageBtnWithText_text);
        if(text!= null)  mTv.setText(text);
        Drawable  drawable = a.getDrawable(R.styleable.ImageBtnWithText_src);
        if(drawable!=null) mBtn.setImageDrawable(drawable);
        a.recycle();
    }

   public void  setImageResrouce(int resId)
    {
        mBtn.setImageResource(resId);
    }

    public  void setText(String  text)
    {
        mTv.setText(text);
    }
}

5、activity_main.xml


   xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"
   android:layout_height="match_parent"android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"tools:context=".MainActivity">

   android:id="@+id/p_w_picpathBtnBtnWithText"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="自定義控件TextView和ImageButton組合"
   android:src="@drawable/logo"
 />

6、MainActivity.java

package com.example.administrator.myview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageBtnWithText ii = (ImageBtnWithText)findViewById(R.id.p_w_picpathBtnBtnWithText);
       /* ii.setImageResrouce(R.drawable.logo);
        ii.setText("自定義組合控件");
*/
    }
}

好了,到此為止全部程序貼完了,本以為能得到想要的結(jié)果,但是一運(yùn)行竟然啥都沒(méi)有····是個(gè)空白!

解決一個(gè) Android開發(fā)自定義控件問(wèn)題,無(wú)法讀取屬性值

然后大家懂的,我就開始到處找錯(cuò)誤,找bug,但是找了大半天都找不到錯(cuò)誤所在,總是獲取不到兩個(gè)組件屬性所對(duì)應(yīng)的值,也在網(wǎng)上查了好多資料,也看到好多類似的問(wèn)題,但是都找不到答案,這下把我快弄瘋掉了!大家可知道哪里錯(cuò)了?

終于·····

查閱官網(wǎng)API,終于找到答案了!問(wèn)題出現(xiàn)在activity_main.xml中,

在布局文件中使用:在使用之前必須聲名命名空間,xmlns:example="http://schemas.android.com/apk/res/com.example.administrator.myview"
說(shuō)明:xmlns      是XML name space 的縮寫; 
          example   可為任意寫符       
          http://schemas.android.com/apk/res/    此為android固定格式;                                           com.example.administrator.myview    此應(yīng)用的包名,如manifest配置文件中一致。

于是將activity_main.xml 作了如下修改:


   xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"
   android:layout_height="match_parent"android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"tools:context=".MainActivity">

   xmlns:myview="http://schemas.android.com/apk/res/com.example.administrator.myview"
   android:id="@+id/p_w_picpathBtnBtnWithText"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   myview:text="自定義控件TextView和ImageButton組合"
   myview:src="@drawable/logo"
 />

然后再運(yùn)行工程,MyGod!終于得到想要的結(jié)果了!


解決一個(gè) Android開發(fā)自定義控件問(wèn)題,無(wú)法讀取屬性值


附:源碼  MyView.zip  http://down.51cto.com/data/2184366



網(wǎng)頁(yè)名稱:解決一個(gè)Android開發(fā)自定義控件問(wèn)題,無(wú)法讀取屬性值
分享地址:http://weahome.cn/article/gsdesi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部