2011-09-10 15 views
2

私はアンドロイド画面の基本クラスを作っています。リストコントロールを持っています。基本クラスのonListItemClickが呼び出され、リスト項目が選択されたと言ったときの方法がありますか?それは、親クラスの関数を呼び出すことができますか?Javaの親クラスで関数を呼び出す方法はありますか?

コード:

public class cHome extends cBase { 
String[] MyItems={ 
     "Gate Directions", 
     "Food & Beverges", 
     "Shjops", 
     "Banking", 
     "Official Agencies", 
     "Amenities & Services", 
     "Restrooms" 
     }; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle, MyItems); 
// Display=MyItems; 
} 

コード:

public class cBase extends ListActivity { 

String[] items={"CASUAL","DRESSES","CAREER","OUTWEAR","FOOTWEAR", 
     "JEWELRY","ACCESSORIES"}; 
String[] Display; 


public void onCreate(Bundle icicle, String[] items2) { 
    Display=items2; 
    super.onCreate(icicle); 

    setContentView(R.layout.baselayout); 
    setListAdapter(new IconicAdapter(this)); 
// selection=(TextView)findViewById(R.id.selection); 

// set values in header 
    // set header 
    TextView mFlight = (TextView)findViewById(R.id.idFlyerFlightNumber); 
    mFlight.setText(cGlobals.mFlightNumber);  

    TextView mDes = (TextView)findViewById(R.id.idFlyerDestanation); 
    mDes.setText(cGlobals.mDestanation); 

} 


class IconicAdapter extends ArrayAdapter { 
    Activity context; 

    IconicAdapter(Activity context) { 
     super(context, R.layout.row, Display); 

     this.context=context; 
    } 

    public View getView(int position, View convertView, 
              ViewGroup parent) { 
     LayoutInflater inflater=context.getLayoutInflater(); 
     View row=inflater.inflate(R.layout.row, null); 
     TextView label=(TextView)row.findViewById(R.id.label); 

     label.setText(Display[position]); 
     ImageView icon=(ImageView)row.findViewById(R.id.icon); 

//  String[] items={"CASUAL","DR ESSES","CAREER","OUTWEAR","FOOTWEAR", 
    //   "JEWELRY","ACCESSORIES"}; 

     switch(position) 
     { 
     case 0: 
    //  icon.setImageResource(R.drawable.formobile_items); 
      break; 

     case 1: 
     // icon.setImageResource(R.drawable.fashion_dress); 
      break; 

     case 2: 
//   icon.setImageResource(R.drawable.fashion_career); 
      break; 

     case 3: 
//   icon.setImageResource(R.drawable.fashion_outwear); 
      break; 

     case 4: 
    //  icon.setImageResource(R.drawable.fashion_footwear); 
      break; 

     case 5: 
//   icon.setImageResource(R.drawable.fashion_jewelry); 
      break; 

     case 6: 
//   icon.setImageResource(R.drawable.fashion_accessories); 
      break; 


     } 
     return(row); 
    } 
} 
} 
+0

あなたが示すべきと何メソッド呼び出したいです。 – Clint

答えて

3

あなたはあなたの子供のクラスでonListItemClickをオーバーライドして、ちょうどそれにsuper.onListItemClickを呼び出すことができます。またはそれをオーバーライドしないでください。onListItemClick基本クラスのメソッドは、リスト内の項目が選択されたときに自動的に呼び出されます。

+0

こんにちは、あなたの理想の仕事、とても簡単!!!!!!!ありがとう、Ted –

5

私があなたの質問を理解しているなら、それを拡張するクラスのメソッドを基本クラスが呼び出す方法が必要です。

これを達成する1つの方法は、拡張クラスがどのようなメソッドを実装する必要があるかを指示する「契約」を確立することです。あなたは、抽象クラスまたはインターフェイスのいずれかでそれを行います。基本クラスは、クラスがそれを拡張するときにどのメソッドが利用可能であるかを知っており、呼び出しを行うことができます。その後、

public abstract class BaseThing { 

    public void foo() { 
     bar(); 
    } 

    public abstract bar(); 
} 

public ParentThing extends BaseThing { 
    public void bar() { 
     System.out.println("Hey, look at that. It worked!"); 
    } 
} 
+0

こんにちは、ありがとう、私はこのJavaについて知りませんでした、私は何か新しいことを学んだ!!!!!私はプロジェクトで働いているようにJavaの学習の一種。 –

関連する問題