【问题标题】:How to call an override method manually?Overrided method is not running如何手动调用覆盖方法?被覆盖的方法没有运行
【发布时间】:2015-04-27 14:28:13
【问题描述】:

我已经开发了一个方法来调用另一个 calss 中的方法。我已经创建了一个适配器,并且在其中我有一个覆盖 getView()。我需要做的是从列表视图中获取值并显示为报告。我在同一个项目的另一个活动中尝试了这个确切的代码。它完美地工作。但是,当我将它移到另一个活动中时,它不会给出任何错误。但是被覆盖的方法没有调用。我应该怎么做才能让它运行?

public class ViewList extends ActionBarActivity {
    ArrayAdapter<Units> unitsAdapterView;

    ListView ViewAll;

    List<Units> Unit = new ArrayList<Units>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_list);
        ViewAll = (ListView) findViewById(R.id.viewList);
       populateListView();
        viewView();
    }
    private  void viewView(){
        Button m=(Button)findViewById(R.id.tryBtn);
        m.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              //  startActivity(new Intent(getApplicationContext(),ViewList.class));
                populateListView();
            }
        });
    }

    private  void populateListView(){
        unitsAdapterView =new UnitListAdaptorView();
        ViewAll.setAdapter(unitsAdapterView);
     //   unitsAdapterView.getView();
    }
    private  class UnitListAdaptorView extends  ArrayAdapter<Units> {
        public UnitListAdaptorView() {
            super   (ViewList.this, R.layout.list,Unit);
            Log.i("","A");
         //   A();

        }

@override
        public View getView(int position, View view, ViewGroup parent) {
            Log.i("","Resue connceted bulb 5");
            if (view == null) {
                view = getLayoutInflater().inflate(R.layout.list,parent ,false);

            }

            Units currentUnit = Unit.get(position);
            TextView name = (TextView)view.findViewById(R.id.lblViewName);
            name.setText(currentUnit.getName());

            TextView bulb=(TextView) view.findViewById(R.id.lblViewBulb);
            bulb.setText(currentUnit.getBulbNo());
            TextView fan=(TextView) view.findViewById(R.id.lblViewFan);
            fan.setText(currentUnit.getFanNo());

            return  view;
        }
    }
}

【问题讨论】:

  • 我看不出这不起作用的任何原因。您是否对项目进行了干净的构建?
  • 没错。错误是由于调用我的数据库类时出错。这就是引发错误的原因
  • 请回答您自己的问题或将其删除,以免它最终出现在“未回答”列表中。
  • 好的,我会发布我自己的答案!不过谢谢.. :)

标签: android android-activity android-listview


【解决方案1】:

添加代码以从数据库中获取所有现有数据后,问题得到解决。将以下代码添加到 onCreate 方法后,该函数现在可以工作了!

  DatabaseHandler dbHandler = new DatabaseHandler(getApplicationContext());
    if (dbHandler.getUnitsCount() != 0)
        Unit.addAll(dbHandler.getAllUnit());

【讨论】:

    猜你喜欢
    • 2011-12-13
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2015-04-08
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多