在flutter中将变量传递给另一个类

时间:2019-09-16 12:00:04

标签: flutter dart

我想在flutter中将两个String变量传递给另一个类并使用它。我尝试过但失败了。

我尝试过这种方式,但是它说了;实例成员不能使用静态访问。我想知道正确的方法。

在MyHome类中;我将litemspage0 [index]和litemsname0 [index]传递给VideoPlayer0类

    _getPage(int page) {
switch (page) {
  case 0:
    return ListView.builder(
      itemBuilder: (context, index) {
        return new Padding(
          padding:
              new EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0),
          child: new Card(
            elevation: 2.0,
            shape: RoundedRectangleBorder(
                borderRadius: new BorderRadius.circular(16.0)),
            child: InkWell(
              onTap: () {
                Navigator.of(context).push(
          new MaterialPageRoute(
            builder: (context) {
              return new VideoPlayer0(litemspage0[index],litemsname0[index]);
            },
          ),
        );

我想在VideoPlayer0类中使用litemspage0 [index],litemsname0 [index]。 这是我尝试的代码,

        class VideoPlayer0 extends StatefulWidget {

  final String litemspage0;
  final String litemsname0;

  VideoPlayer0(this.litemspage0, this.litemsname0);

  @override
  _MyHomePageState0 createState() => _MyHomePageState0();
}

class _MyHomePageState0 extends State<VideoPlayer0> {

  static const platform = const MethodChannel("www.youtube.com");
  TextEditingController _idController = TextEditingController();
  TextEditingController _seekToController = TextEditingController();
  double _volume = 1.0;
  VideoPlayerController _videoController;
  String position = "Get Current Position";
  String status = "Get Player Status";
  String videoDuration = "Get Video Duration";
  String _source = VideoPlayer0.litemspage0;
  bool isMute = false;

但是我遇到了这个错误。

String _source = VideoPlayer0.litemspage0;

Instance member 'litemspage0' can't be accessed using static access.

我想知道正确地将一类变量传递给另一类的正确方法。

2 个答案:

答案 0 :(得分:1)

这不是将变量传递给另一个类的正确方法。 正确的方法是这样的:

VideoPlayer0(litemspage0: yourPageValue  ,litemsname0:yourNameValue);

,您可以像这样在状态类中访问它们:

String _source = widget.litemspage0;

答案 1 :(得分:0)

在状态类中,要访问小部件类的变量,必须使用widget。因此,请使用widget.litemspage0

此外,您必须在_source中分配initState(),如下所示:

String _source;

@override
initState() {
  super.initState();
  _source = widget.litemspage0;
}