我在 src root 中创建了一个testing
包,结束于SectionListActivityExtended
Is 只是一个普通的别名,但在不同的包中:
package testing;
import pl.polidea.sectionedlist.SectionListActivity;
public class SectionListActivityExtended extends SectionListActivity{
}
修改了 AndroidManifest.xml 部分:
<activity
android:name="testing.SectionListActivityExtended"
android:label="@string/app_name"
android:theme="@style/SectionListViewTheme" >
并修改了 SectionListActivity:
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
arrayAdapter = new StandardArrayAdapter(this, R.id.example_text_view, exampleArray);
sectionAdapter = new SectionListAdapter(getLayoutInflater(), arrayAdapter);
String className = SectionListActivity.class.getPackage().getName();//className: pl.polidea.sectionedlist
System.out.println("className: "+className);//className: pl.polidea.sectionedlist
listView = (SectionListView) findViewById(getResources().getIdentifier("section_list_view", "id", className));
listView.setAdapter(sectionAdapter);
}
经过测试,正在工作,它用类名标签写出包名,现在不重要。
我已经创建了我的工作应用程序(在 NDA 下有很多样式和定义)我已经将带有所需文件的源代码复制到我的项目中,希望我能开始工作。修改了SectionListActivity
从扩展类调用的and,类似上面:不同的根包。
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
arrayAdapter = new StandardArrayAdapter(this, R.id.example_text_view, exampleArray);
sectionAdapter = new SectionListAdapter(getLayoutInflater(), arrayAdapter);
// FrameLayout frameLayout = (FrameLayout) findViewById(R.id.listView);
// if (frameLayout == null) {
// Log.e("tag", "got frameLayout");
// } else {
//
// Log.e("tag", "frameLayout is NULL");
// }
String packageName = SectionListActivity.class.getPackage().getName();//pl.polidea.sectionedlist
System.out.println("packageName: " + packageName);
listView = (SectionListView) findViewById(getResources().getIdentifier("section_list_view", "id", packageName));
if (listView != null) {
listView.setAdapter(sectionAdapter);
} else {
Log.e(packageName, "Can't load section_list_view ");
}
}
两者frameLayout
都listView
为空。
从其他帖子来看,主要原因是因为他们没有将 attrs 传递给 super,但是这部分代码保持不变:
public SectionListView(final Context context, final AttributeSet attrs) {
super(context, attrs);
commonInitialisation();
}
也许在造型上它没有合并一些东西,但不知道如何追踪,或者我错过了一些东西并且还不知道。
有任何想法吗?