ライブラリ プロジェクトに PreferenceActivity のサブクラスである SettingsActivity があります。
oncreate メソッドは次のようになります
addPreferencesFromResource(R.xml.preferences);
setContentView(R.layout.main);
preference.xml ファイルは、要素 PreferenceScreen -> PreferenceCategory -> Preference のような構造になっています。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!--Listview will be replaced by preferences -->
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
上記のクラス SettingsActivity は別のプロジェクトでサブクラス化されており、このように見えます
public class SettingsActivityFree extends SettingsActivity
{
private AdView adView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//...
// layout returned will be null ..
LinearLayout layout = (LinearLayout)findViewById(R.layout.main);
// Add the adView to it
layout.addView(adView);
}
問題は、親クラスから LinearLayout を取得して自分のものを追加できるようにしようとしていることですが、何らかの理由で null を返します。SettingsActivity クラスに LinearLyout がある理由は、いくつかの広告などを配置したいからですプリファレンスの上部にあり、ライブラリ プロジェクトに広告固有のコードを配置する必要はありません
ここで何か不足している場合は、アドバイスしてください。
ありがとう