我有一个基于导航抽屉的应用程序,Home Class extends AppCompatActivity
我在导航抽屉的不同选项卡和代表"的HomeFragment之间切换。 HOME"标签 。
另一方面,我做了一个" ReadRSS"使用Context作为参数的构造函数的类。
我想实例化" ReadRSS"在我的HomeFragment中,如果我使用keywrod,我得到一个错误说:
ReadRSS (android.content.Context) in ReadRSS cannot be applied
to (com.example.essat.essat.HomeFragment)
如果我尝试传递getAcitivty()
或getContext()
,我会收到错误消息:
unreachable statement
这是我的代码以获取更多详细信息:
public class ReadRSS extends AsyncTask<Void,Void,Void> {
Context context;
ProgressDialog progressDialog;
public ReadRSS (Context context){
this.context=context;
progressDialog = new ProgressDialog(context);
progressDialog.setMessage("Loading ...");
}
// Other Methods ...
}
HomeFragment:
public class HomeFragment extends Fragment {
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home, container, false);
ReadRSS readRSS = new ReadRSS(// I Pass them all Here );
readRSS.execute();
}
}
在我的家庭课程中,我使用以下代码调用片段:
fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.Home_Container,new HomeFragment());
fragmentTransaction.commit();
并在其他选项卡的Switch语句中重新使用它,以便在应用程序启动时显示主页片段,如果您更改了选项卡,则可以使用&#34; HOME&#34;标签
我希望你能帮助我解决这个错误或提出另一种方法。
先谢谢。
答案 0 :(得分:3)
哦,当然 - 那是因为你在ReadRSS初始化之前有返回声明。
将订单更改为:
app.get('/video', function (req, res) {
var readStream = fs.createReadStream('video.mjpeg');
res.writeHead(200, {'Content-Type': 'multipart/x-mixed- replace;boundary=ThisString'});
readStream.on("data", (chunk) => {
res.write(chunk, 'binary');
setTimeout(function () {
res.write('ThisString');
}, 200);
console.log("Writing to client");
});
readStream.on("end", () => {
readStream.destroy();
res.end();
console.log("End of data");
});
});
没关系。
答案 1 :(得分:0)
你有这条线:
ReadRSS readRSS = new ReadRSS();
但是你的ReadRSS类要求参数中的args?或者你有另一个你没有包含在这里的空构造函数吗?
你在哪里调用getContext()导致错误无法访问的语句?无法访问的语句意味着执行路径无法到达该行...即,它上面有一个返回语句,或者在它上面抛出异常。
答案 2 :(得分:0)
Goltsev Eugene解决的问题 我只需要在ReadRSS实例化和return语句之间切换顺序。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
ReadRSS readRSS = new ReadRSS(// I Pass them all Here );
readRSS.execute();
return inflater.inflate(R.layout.fragment_home, container, false);
}
谢谢大家。
答案 3 :(得分:-1)
您可以在onAttach()
中获取上下文context = getActivity().getApplicationContext();
到ReadRSS课程。
ReadRSS readRSS = new ReadRSS(context);