Ссылка для Support4Demos изменена или может быть изменена, чтобы опубликовать полное решение. Здесь это идет.
Создание attrs.xml файла в папке res / values. Или добавьте содержимое ниже, если файл уже существует.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyFragment">
<attr name="my_string" format="string"/>
<attr name="my_integer" format="integer"/>
</declare-styleable>
Переопределить onInflate делегат фрагмента и прочитать атрибуты в нем
/**
* Parse attributes during inflation from a view hierarchy into the
* arguments we handle.
*/
@Override
public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState) {
super.onInflate(activity, attrs, savedInstanceState);
Log.v(TAG,"onInflate called");
TypedArray a = activity.obtainStyledAttributes(attrs,R.styleable.MyFragment);
CharSequence myString = a.getText(R.styleable.MyFragment_my_string);
if(myString != null) {
Log.v(TAG, "My String Received : " + myString.toString());
}
int myInteger = a.getInt(R.styleable.AdFragment_my_integer, -1);
if(myInteger != -1) {
Log.v(TAG,"My Integer Received :" + myInteger);
}
a.recycle();
}
Передайте эти атрибуты в файл макета следующим образом. Просто пример
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is android activity" />
<fragment
android:id="@+id/ad_fragment"
android:name="com.yourapp.packagename.MyFragment"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
app:my_string="Hello This is HardCoded String. Don't use me"
app:my_integer="30" />
</RelativeLayout>
Вот и все. Это рабочее решение.
При этом, если вы видите какую-либо ошибку пространства имен в xml.
попробуйте очистить проект снова и снова.
Это жалко, но затмение и адт иногда плохо себя ведет.
Надеюсь, это поможет другим:)
Приветствия