2014-01-10 51 views
0

我想從父類(Main1Activity)中的子類(菜單)使用我的函數「列表」我怎麼能這樣做,以便我將使用該函數來調用我的列表?從父類中的子類調用函數?

而且我也不想讓功能在父類

public class Main1Activity extends Activity{ 
    // i want to use list function here 
} 

public class menu extends Main1Activity { 
    public void list(View view) { 
     //Toast.makeText(getApplicationContext(), "clicked", 3000).show(); 
     Cursor cursor2=mydb1.rawQuery("SELECT * FROM notes;", null); 

     if (cursor2.moveToFirst()) { 
      //Toast.makeText(getApplicationContext(), "Title's are:", 3000).show(); 
      data.clear(); 

      do { 
       data.add(cursor2.getString(cursor2.getColumnIndex("title"))); 
      } while (cursor2.moveToNext()); 

      ArrayAdapter <String> adapter=new ArrayAdapter<String>(menu.this,android.R.layout.simple_list_item_1,data); 

      lv.setAdapter(adapter); 
     } 
     else { 
      Toast.makeText(getApplicationContext(), "There are no notes to display ", 3000).show(); 
     } 
     cursor2.close(); 
    } 
} 
+1

**「我不想在父類中做功能」** - 這是不能做到的。一個超類永遠不會知道子類。通過繼承,你的菜單類是一個Main1Activity類,但Main1Activity不是一個菜單類。我建議你更深入地研究OOP。 – Squonk

回答

0

沒有注意到你的類之間的繼承,但是這仍是一個選項。

放入單獨的類。

public class SomeClass { 
    public static void list(Context context, View view) 
} 

public class Main1Activity extends Activity{ 
    // i want to use list function here 
    SomeClass.list(this, view); 
} 

public class menu extends Main1Activity { 
    SomeClass.list(this, view); 
} 
0

我覺得你想要做的不是很好的思考。考慮抽象類和接口,你應該檢查你繼續的方式。

你應該解釋你爲什麼要這樣做,這可能會有所幫助。