我有一个片段,我试图添加到视图中.
FragmentManager fragMgr=getSupportFragmentManager();
feed_parser_activity content = (feed_parser_activity)fragMgr
.findFragmentById(R.id.feedContentContainer);
FragmentTransaction xaction=fragMgr.beginTransaction();
if (content == null || content.isRemoving()) {
content=new feed_parser_activity(item.getLink().toString());
xaction
.add(R.id.feedContentContainer, content)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(null)
.commit();
Log.e("Abstract", "DONE");
}
Run Code Online (Sandbox Code Playgroud)
执行此代码时,我在调试中收到以下错误.
java.lang.IllegalArgumentException: No view found for id 0x7f080011
for fragment feed_parser_activity{41882f50 #2 id=0x7f080011}
Run Code Online (Sandbox Code Playgroud)
feed_parser_activity是一个片段,在xml中设置为Fragment layout.
我正在使用FragmentActivity来托管片段布局feed_parser_layout.
我上面正确编码吗?
根据这个链接:ListFragment android开发者
我想为列表设置自定义布局,但它会产生异常.
这是代码:
public class ListFragmentActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
FragmentManager fm = getSupportFragmentManager();
if(fm.findFragmentById(android.R.id.content) == null)
{
myListFragments list = new myListFragments();
fm.beginTransaction().add(android.R.id.content, list).commit();
}
}
public static class myListFragments extends ListFragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.topoffers, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
List<OfferModel> offers = Global.getInstance().getOffers();
List<OfferModel> topOffers …Run Code Online (Sandbox Code Playgroud) 我在FragmentActivity中使用ListFragment以及SimpleCursorAdapter和修改过的CursorLoader.修改后的CursorLoader只发出rawQueries - 没有其他更改.
在FragmentActivity中的某个时刻,我需要重新获取在ListFragment中提供ListView的数据/光标.
我怎样才能做到这一点?
提前谢谢了.
这是FragmentActivity调用ListFragment中的方法:
public class ActivityList extends FragmentActivity {
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
...
processUpdateList();
}
...
private void processUpdateList() {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragmentlist);
if (fragment != null) {
((FragmentList) fragment).requeryList();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里是ListFragment,该方法应该启动对ListView的重新查询,重新加载或重新绘制.ListView.invalidate()没有帮助 - 它没有改变显示的数据.
public class FragmentList extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
private SimpleCursorAdapter adapter;
private Context context;
private ListView listView;
public void requeryList() {
// listView.invalidate(); didn't re-query
// TODO: How???
} …Run Code Online (Sandbox Code Playgroud) android listview simplecursoradapter android-fragments android-fragmentactivity
以前,我将布局膨胀为ListView的自定义视图层次结构没有问题.但我不知道如何为listFragment做同样的事情.假设我有一个带有ImageView和2个textview的item_list布局.我想膨胀这个在我的ListFragment中使用.但是怎么样?
public class Tab1Fragment extends ListFragment {
private LayoutInflater mInflater;
private Vector<RowData> data;
RowData rd;
static final String[] title = new String[] {
"Classic Plank", "Side Plank", "Reversed Plank", "Swissball Plank", "One Arm One Leg", //5
};
static final String[] description = new String[] {
"Variation of Sushis from fresh vegetables and seafoods! Good for family occassions!",
"Oyakodon is a Japanese Rice Bowl dish with Chicken, Eggs and various sorts of healthy and delicious Veggetables!",
"Japanese assorted Pancake that is …Run Code Online (Sandbox Code Playgroud) 我很困惑使用ListFragment ......我无法理解问题出在哪里......
这是我的FragmentActivity类:
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class menu extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.root_menu);
if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {
ListFrag list = new ListFrag();
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, list).commit();
}}}
Run Code Online (Sandbox Code Playgroud)
我的ListFragment类:
public class ListFrag extends ListFragment {
int Files = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
getListView().setBackgroundResource(R.drawable.table);
getListView().setDividerHeight(0);
getListView().setCacheColorHint(0);
View view = inflater.inflate(R.layout.main, null);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new CustomListAdapter(getActivity(), …Run Code Online (Sandbox Code Playgroud) 我在Android编程方面很陌生(我编写了大量的PC应用程序并使用了Java),我很茫然.我想创建一个使用片段的应用程序.我想创建Fragment Programaticaly(正如Android Developer页面上的介绍所说)买我的应用程序一直崩溃,我不知道为什么.
这是我的主要活动的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FragmentManager fmanager = getFragmentManager();
FragmentTransaction ftransaction = fmanager.beginTransaction();
FileBrowser fbrowser = new FileBrowser();
ftransaction.add(R.layout.main,fbrowser, "FileBrowser");
ftransaction.commit();
fbrowser.test();
}
Run Code Online (Sandbox Code Playgroud)
这是FileBrowser的代码:
公共类FileBrowser扩展了ListFragment {
public void test(){
System.err.println("Entre a test!!!");
String[] MyList = {"HOla","Mundo","De","Las","Listas"};
if (getActivity() == null){
System.err.println("I get a NULL Activity");
}
else{
System.err.println("No NULL Activity Attempting to Create an Adapter");
ArrayAdapter<String> aa = new ArrayAdapter<String>(getActivity(), R.layout.file_row, MyList);
}
//setListAdapter(new ArrayAdapter<String>(this.getActivity(), R.layout.file_row, MyList));
}
Run Code Online (Sandbox Code Playgroud)
}
我要做的就是在片段中打印字符串列表MyList.但是我程序崩溃了,我收到这个错误:
06-09 19:25:42.920:ERROR/AndroidRuntime(26064):java.lang.RuntimeException:无法启动活动ComponentInfo {com.ccr/com.ccr.Main}:java.lang.IllegalArgumentException:找不到id的视图片段FileBrowser的0x7f030001 {4077d558#0 …
我尝试使用Android兼容性库(或现在称为支持库)v4用于预蜂窝式Android设备.我理解,我应该使用FragmentActivity类,而不是使用Fragment类.根据我能找到的所有教程,我可以像在Fragment类中一样使用onCreateView方法:
public View onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState)
但是,FragmentActivity中的onCreateView方法似乎有所不同.我继承的是:
public View onCreateView(String name,Context context,AttributeSet attrs)
此版本实际上列在FragmentActivity类的Android参考中.
似乎我找到的所有教程都没有说明这种差异,而且所有教程都在Fragment类中调用它.我在这里误以为我应该以某种方式调用Fragment类版本的onCreateView吗?