我有两节课.首先是活动,第二是我有一些片段EditText.在活动中我有一个带有async-task的子类,在方法中doInBackground我得到一些结果,我保存到变量.如何将此变量从子类"my activity"发送到此片段?
我有一个Fragment带有多个参数的构造函数.我的应用程序在开发期间工作正常,但在生产中我的用户有时会看到此崩溃:
android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment
make sure class name exists, is public, and has an empty constructor that is public
Run Code Online (Sandbox Code Playgroud)
我可以创建一个空的构造函数,因为这个错误消息建议,但这对我没有意义,因为那时我将不得不调用一个单独的方法来完成设置Fragment.
我很好奇为什么这种崩溃偶尔会发生.也许我使用ViewPager不正确?我Fragment自己实例化所有s并将它们保存在一个列表中Activity.我不使用FragmentManager事务,因为ViewPager我看到的例子并不需要它,并且一切似乎都在开发期间工作.
我的类应该将参数传递给DialogFragment,但是我的应用程序在onCreate方法(对话框类)中崩溃,导致NullPointerException.Dialog片段类代码部分:
public class ConfirmDialog extends DialogFragment {
public ConfirmDialog() {}
ConfirmDialog newInstance(String f) {
ConfirmDialog d = new ConfirmDialog();
Bundle args = new Bundle();
args.putString("FILE_NAME", f);
d.setArguments(args);
return d;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
file = getArguments().getString("FILE_NAME");
}
Run Code Online (Sandbox Code Playgroud)
我在这一行有nullpointer:
file = getArguments().getString("FILE_NAME");
Run Code Online (Sandbox Code Playgroud)
我不知道为什么.我也粘贴代码调用对话框
private void showConfirmDialog(String file) {
FragmentManager fm = getSupportFragmentManager();
ConfirmDialog dialog = new ConfirmDialog();
Log.i("SHOWFILEACTIVITY", file);
dialog.newInstance(file);
dialog.show(fm, "fragment_confirm_dialog");
}
Run Code Online (Sandbox Code Playgroud)
这里的"文件"字符串不为空,我已经检查过了
Log.i("SHOWFILEACTIVITY", file);
Run Code Online (Sandbox Code Playgroud) 我已经完成了一个简单的应用程序,通过json列出mysql数据库中的所有产品.当我点击特定产品时,它会将我带到显示其详细信息的活动.现在我更改了我的应用程序,以便当我从列表中单击特定产品时,它将转到3个选项卡式片段.我创建了所有相关的片段,一切正常.当我尝试将数据从列表中的所有产品活动传递到详细信息片段活动时,它才起作用.如何将主屏幕中列出所有产品的数据传递给显示详细信息的3个片段?
进一步说明:
没有框架的工作示例:主要活动显示所有产品,并在选择单个产品时将其传递给详细信息活动 - >详细信息活动从主要活动获取数据并显示详细信息
现在我有显示所有产品的主要活动.我是否将数据传递给 - >"公共类EmpresaDetailsActivity extends FragmentActivity实现ActionBar.TabListener {etc"还是我必须将它传递给我创建的所有其他3个单个片段?
(旧方式)列出所有产品:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.all_empresas);
empresaList = new ArrayList<HashMap<String, String>>();
// Get listview
ListView lv = getListView();
// on selecting single empresa
// launching Empresa Details Screen
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String eid = ((TextView) view.findViewById(R.id.eid)).getText().toString();
String marca = ((TextView) view.findViewById(R.id.marca)).getText().toString();
String investimento = ((TextView) view.findViewById(R.id.investimento)).getText().toString();
String marcatotal …Run Code Online (Sandbox Code Playgroud) 我想将字符串值从活动传递到片段.为此,我使用bundle来传输字符串值.
PUT STRING ACTIVITY 传递字符串值: -
Bundle bundle = new Bundle();
bundle.putString("Value", resultp.get(CurrentProjectActivity.VALUE));
Log.d(TAG, "Value ::: " + resultp.get(CurrentProjectActivity.VALUE));
// set Fragmentclass Arguments
AmenetiesFragment fragobj = new AmenetiesFragment();
fragobj.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)
在日志中我也获得了"价值"价值.
在碎片中获得价值(它不起作用).
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_listview, container, false);
Bundle bundle = this.getArguments();
Log.d(TAG, "Value's value:) ::: " + bundle);
String strtext = bundle.getString("Value");
return rootView;
}
Run Code Online (Sandbox Code Playgroud)
在日志中我为BUNDLE获取NULL值.请帮我解决这个问题.提前致谢.