2017-03-07 2 views
0

Ich habe ein Dutzend Aktivitäten, die die gleichen Methoden für ein Pin-Pad erben. Jede Aktivität ist völlig anders als die Pin-Pad. Wie kann ich mit meiner Aktivität die Methoden einer gemeinsamen Klasse erben? Mache ich etwas falsch?So erhalten Sie die Aktivität, um Methoden zu erben

public class TestActivity extends PinPadActivity { 
    TextView mEntry; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test); 
     mEntry = (TextView) findViewById(R.id.entry_textview); 
    } 
} 


public class PinPadActivity extends AppCompatActivity { 
    String mPin; 
    String mPinShow; 
    TextView mEntry; 
    public void on1Click(View v) { 
     mPin = mPin+"1"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on2Click(View v) { 
     mPin = mPin+"2"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on3Click(View v) { 
     mPin = mPin+"3"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on4Click(View v) { 
     mPin = mPin+"4"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on5Click(View v) { 
     mPin = mPin+"5"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on6Click(View v) { 
     mPin = mPin+"6"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on7Click(View v) { 
     mPin = mPin+"7"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on8Click(View v) { 
     mPin = mPin+"8"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on9Click(View v) { 
     mPin = mPin+"9"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void on0Click(View v) { 
     mPin = mPin+"0"; 
     mPinShow = mPinShow+"*"; 
     mEntry.setText(mPinShow); 
    } 
    public void onClearClick(View v) { 
     mPin = ""; 
     mPinShow = ""; 
     mEntry.setText(""); 
    } 
} 

Antwort

1

Unabhängig der Art und Weise der Codierung oder ob es sich um beste Ansatz, um Ihren Code funktioniert zu machen, sollten Sie die Textview mEntry in Ihrem TestActivity entfernen und setzen öffentliche oder geschützt Modifikator zum Textview mEntry in der PinPadActivity (auf die Standardklasse oder die private Variable kann von Unterklassen nicht zugegriffen werden). Dies sollte Ihnen ermöglichen, die onXClick() -Methoden aufzurufen, um die von der PinPadActivity geerbte mEntry-Textansicht in Ihrer TestActivity festzulegen.

+0

Danke! Das hat perfekt für mich funktioniert. – Jay

0

Das kann gemacht werden, um zu arbeiten, aber es ist nicht der richtige Weg. Machen Sie das PinPad zu einem Fragment. Fügen Sie dann das Fragment in jede Aktivität ein, die es verwendet.

Verwandte Themen