从活动中调用片段时出错,我想使用活动扫描条形码&扫描内容需要上传片段。 我的'PublicBarcodeScannerActivity.java'是=>
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import com.example.delivery.R;
import com.example.delivery.adapter.OrderedItemListAdapter;
import static android.R.id.content;
public class PublicBarcodeScannerActivity extends FragmentActivity {
String actvity;
String ordid;
SharedPreferences pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_public_barcode_scanner);
Bundle b = getIntent().getExtras();
actvity = b.getString("act");
ordid = b.getString("orderid");
Log.e("activty:", actvity);
IntentIntegrator scanIntegrator = new IntentIntegrator(
PublicBarcodeScannerActivity.this);
// start scanning
scanIntegrator.initiateScan();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_public_barcode_scanner, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// retrieve result of scanning - instantiate ZXing object
IntentResult scanningResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, intent);
if (scanningResult != null) {
// get content from Intent Result
String scanContent = scanningResult.getContents();
if (scanContent != null) {
// get format name of data scanned
String scanFormat = scanningResult.getFormatName();
Log.d("scanFormat", scanFormat);
Log.d("scanContent", scanContent);
if (actvity.equals("FragOrdrdItemList")) {
Bundle bundle = new Bundle();
Log.e("orderIDB:", ordid);
bundle.putString("scancode", scanContent);
bundle.putString("ACTIVITY", "publicbarcode");
bundle.putString("orderid", ordid);
OrderedItemListFragment orderedItemListFragment = new OrderedItemListFragment();
//OrderedItemListFragment odl=OrderedItemListFragment.newInstance();
orderedItemListFragment.setArguments(bundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
// FragmentManager mgr = getFragmentManager();
// mgr.popBackStack();
// ft.addToBackStack(null);
ft.replace(R.id.container_body, orderedItemListFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
} else {
if (actvity.equals("FragOrdrdItemList")) {
OrderedItemListFragment orderedItemListFragment = new OrderedItemListFragment();
Bundle bundle = new Bundle();
Log.e("scancode4", scanContent);
bundle.putString("scancode", "null");
bundle.putString("ACTIVITY", "publicbarcode");
bundle.putString("orderid", ordid);
Log.e("scancode5", scanContent);
orderedItemListFragment.setArguments(bundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.addToBackStack(null);
ft.replace(R.layout.activity_main, orderedItemListFragment); // f2_container is your FrameLayout container
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
Log.e("scancode6", scanContent);
}
}
} else {
// invalid scan data or scan canceled
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
}
我的Logcat显示以下错误=>
12-31 11:15:26.928 17452-17452/com.example.delivery E/activty:﹕ FragOrdrdItemList
12-31 11:15:48.218 17452-17452/com.example.delivery E/orderIDB:﹕ 10776
12-31 11:15:48.218 17452-17452/com.example.delivery E/FragmentManager﹕ No view found for id 0x7f0e0079 (com.example.delivery:id/container_body) for fragment OrderedItemListFragment{42b552d0 #0 id=0x7f0e0079}
12-31 11:15:48.218 17452-17452/com.example.delivery E/FragmentManager﹕ Activity state:
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ Local FragmentActivity 42b2f318 State:
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ mCreated=truemResumed=false mStopped=true mReallyStopped=true
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ mLoadersStarted=true
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ FragmentManager misc state:
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ mHost=android.support.v4.app.FragmentActivity$HostCallbacks@42b2f580
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ mContainer=android.support.v4.app.FragmentActivity$HostCallbacks@42b2f580
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ mCurState=2 mStateSaved=true mDestroyed=false
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ View Hierarchy:
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ com.android.internal.policy.impl.PhoneWindow$DecorView{42b30338 V.E..... ... 0,0-0,0}
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ android.widget.LinearLayout{42b30980 V.E..... ... 0,0-0,0}
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ android.view.ViewStub{42b31478 G.E..... ... 0,0-0,0 #102031c}
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ android.widget.FrameLayout{42b316d8 V.ED.... ... 0,0-0,0 #1020002 android:id/content}
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ android.widget.RelativeLayout{42b31e78 V.E..... ... 0,0-0,0 #7f0e0080 app:id/activity_public_barcode_scanner}
12-31 11:15:48.228 17452-17452/com.example.delivery E/FragmentManager﹕ android.widget.TextView{42b32448 V.ED.... ... 0,0-0,0}
12-31 11:15:48.248 17452-17452/com.example.delivery E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.delivery, PID: 17452
java.lang.RuntimeException: Unable to resume activity {com.example.delivery/com.example.delivery.activity.PublicBarcodeScannerActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f0e0079 (com.example.delivery:id/container_body) for fragment OrderedItemListFragment{42b552d0 #0 id=0x7f0e0079}
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2790)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5052)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0e0079 (com.example.delivery:id/container_body) for fragment OrderedItemListFragment{42b552d0 #0 id=0x7f0e0079}
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:882)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062)
at android.app.BackStackRecord.run(BackStackRecord.java:690)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1449)
at android.app.Activity.performStart(Activity.java:5257)
at android.app.Activity.performRestart(Activity.java:5314)
at android.app.Activity.performResume(Activity.java:5319)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2780)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2819)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1254)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5052)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)
请帮我解决这个问题
答案 0 :(得分:0)
下面:
ft.replace(R.layout.activity_main, orderedItemListFragment);
目前将布局文件ID作为第一个参数传递,但替换方法所需的布局容器id
R.id.container_body
。
传递布局ID,其中想要用作片段容器,如:
ft.replace(R.id.container_body, orderedItemListFragment);
答案 1 :(得分:0)
问题是android无法在其活动container_body
的布局中找到布局容器activity_public_barcode_scanner
。因此它显示了类似的错误No view found for id 0x7f0e0079
ft.replace(R.id.container_body, orderedItemListFragment);
确保container_body
中有activity_public_barcode_scanner
。
答案 2 :(得分:0)
缺少替换片段的ID。 activity_public_barcode_scanner是打开PublicBarcodeScannerActivity类的主要布局。您可以通过替换布局ID而不是新布局来打开新的片段
ft.replace(R.layout.activity_main, orderedItemListFragment);
错了。