android看不到编辑的视图了,android – 找不到用于片段的id的视图

我整天都被困在这里,而且我似乎无法在这里找到适合我的情况的答案,足以让我使用.

当我单击列表项目(如蓝色)时,我希望它显示一个新的片段为蓝色屏幕,并且在横向上它会在屏幕的一半显示该片段,而在另一个屏幕上显示列表视图.我正在使用ActionBarSherlock和片段来实现这一目标.

我是从内到外构建的,所以我从一个列表开始,它按照我的意愿工作.然后我添加了选项卡,寻呼机功能和其他列表.在该过程的某个地方,片段显示停止工作,每次我点击任何东西我都会崩溃.

这是我的一个ListView活动的clicky部分

public class TitlesFragment extends SherlockListFragment{

boolean mDualPane;

int mCurCheckPosition = 0;

.

.

.

@Override

public void onSaveInstanceState(Bundle outState){

super.onSaveInstanceState(outState);

outState.putInt("curChoice", mCurCheckPosition);

}

@Override

public void onListItemClick(ListView l, View v, int position, long id){

showDetails(position);

}

void showDetails(int position){

SherlockFragment newContent = new SherlockFragment();

FragmentManager fm = getFragmentManager();

FragmentTransaction ft = fm.beginTransaction();

if(mDualPane){

switch(position){

case 0:

newContent = new Blue();

break;

case 1:

newContent = new Red();

break;

case 2:

newContent = new Green();

break;

case 3:

newContent = new Yellow();

break;

case 4:

newContent = new Purple();

break;

} ft.replace(R.id.details, newContent);

} else {

switch(position){

case 0:

newContent = new Blue();

break;

case 1:

newContent = new Red();

break;

case 2:

newContent = new Green();

break;

case 3:

newContent = new Yellow();

break;

case 4:

newContent = new Purple();

break;

}ft.replace(R.id.titles, newContent);

}

ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);

ft.addToBackStack(null);

ft.commit();

return;

}

}

这是蓝班

public class Blue extends SherlockFragment{

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

}

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){

return inflater.inflate(R.layout.blue, container, false);

}

}

蓝色布局

android:id="@+id/blue"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#0000FF"

android:orientation="vertical" >

我希望它在横向上替换的布局

android:layout_width="match_parent"

android:layout_height="match_parent"

android:baselineAligned="false"

android:orientation="horizontal"

android:id="@+id/fragment_layout_support_land" >

android:id="@+id/titles_land"

android:layout_width="0px"

android:layout_height="match_parent"

android:layout_weight="1"

class="***.TitlesFragment" />

android:id="@+id/details"

android:layout_width="0px"

android:layout_height="match_parent"

android:layout_weight="2" />

并以纵向替换布局

android:id="@+id/fragment_layout_support"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/titles"

android:layout_width="match_parent"

android:layout_height="match_parent"

class="***.TitlesFragment" />

最后我的LogCat

我之前使用过教程来获取片段.我无法发布更多链接,但你会在youtube上找到它,名为ListFragment Tutorial Part 2.

在这一点上,我对任何事情持开放态度,包括从头开始并以不同的方式执行代码,但我更希望了解这里发生的事情以及为什么,所以我可以从中学习.谢谢!

编辑

尝试了一些新的错误并得到了新的错误

@Override

public void onListItemClick(ListView l, View v, int position, long id){

showDetails(position);

}

void showDetails(int position){

SherlockFragment newContent = new SherlockFragment();

FragmentTransaction transaction = getFragmentManager().beginTransaction();

transaction.add(R.id.fragment_layout_support, newContent);

transaction.commit();

if(mDualPane){

switch(position){

case 0:

newContent = new Blue();

break;

case 1:

newContent = new Red();

break;

case 2:

newContent = new Green();

break;

case 3:

newContent = new Yellow();

break;

case 4:

newContent = new Purple();

break;

} transaction.add(R.id.fragment_layout_support_land, newContent);

} else {

switch(position){

case 0:

newContent = new Blue();

break;

case 1:

newContent = new Red();

break;

case 2:

newContent = new Green();

break;

case 3:

newContent = new Yellow();

break;

case 4:

newContent = new Purple();

break;

}transaction.replace(R.id.fragment_layout_support, newContent);

}

transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);

transaction.addToBackStack(null);

transaction.commit();

return;

}

}

新的LogCat

FATAL EXCEPTION: main java.lang.IllegalStateException: commit already called

at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:582)

at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)

at [package].TitlesFragment.showDetails(TitlesFragment.java:97)

at [package].TitlesFragment.onListItemClick(TitlesFragment.java:44)

at android.support.v4.app.ListFragment$2.onItemClick(ListFragment.java:58)

at android.widget.AdapterView.performItemClick(AdapterView.java:298)

at android.widget.AbsListView.performItemClick(AbsListView.java:1100)

at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)

at android.widget.AbsListView$1.run(AbsListView.java:3463)

at android.os.Handler.handleCallback(Handler.java:730)

at android.os.Handler.dispatchMessage(Handler.java:92)

at android.os.Looper.loop(Looper.java:137)

at android.app.ActivityThread.main(ActivityThread.java:5103)

at java.lang.reflect.Method.invokeNative(Native Method)

at java.lang.reflect.Method.invoke(Method.java:525)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)

at dalvik.system.NativeStart.main(Native Method)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值