2014-09-30 2 views
0

Если я хочу создать кнопку, в которой все java может использовать ее без необходимости писать ее в каждой java, , что мне делать?android one button share another java use

Пример: Я проектирую функцию Button.OnClickListener для поиска устройств Bluetooth. , но другой java также необходимо использовать эту функцию Button.OnClickListener, Я не хочу писать то же самое на двух java.

ledWrite.xml:

<Button android:id="@+id/btnScan" /> 
<ToggleButton android:id="@+id/tBtnWrite" /> 

bluetoothUtils.java

// Intent request codes 
private static final int REQUEST_CONNECT_DEVICE = 1; 

private Button button_scan; 
button_scan = (Button)findViewById(R.id.button_scan); 
button_scan.setOnClickListener(new OnClickListener(){ 
    public void onClick(View v) { 
     scanbt(); 
    } 
}); 

private void scanbt(){ 
    Intent serverIntent = new Intent(this, DeviceListActivity.class); 
    startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE); 
} 

тогда я проектирую LedWrite.java:

private ToggleButton digitalOutBtn; //LED On/OFF 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.ledwrite); 

digitalOutBtn = (ToggleButton)findViewById(R.id.tBtnWrite); 
digitalOutBtn.setOnClickListener(new OnClickListener() 
public void onClick(View v){ 
    if(digitalOutBtn.isChecked()){ //sendMessage("D1"); } 
    else{sendMessage("D0";} 
} 

Как я могу использовать button_scan в LedWrite.java?

+0

создать класс, который реализует onclicklistener и использовать его во всех ваших кнопок –

+0

предположим, что Вы создали имя класса, который реализует customOnClick OnClickListener. Вы можете использовать его так: Button.setOnClickListener (новый CustomOnClick()); –

ответ

0

Если вы хотите вызвать определенный метод, это другое действие, нажатие кнопки, вы можете сделать этот метод статическим.

Предположим, что у вас есть метод с именем searchBluetooth() в MainActvity, и вы хотите назвать его от SecondActivity.

Определение searchBluetooth() в MainActvity как,

public static void searchBluetooth()

вызывать этот метод из SecondActivity как,

MainActivity.searchBluetooth()

Если вы не хотите использовать статические из-за потребления памяти, то попробуйте с наследованием.

Создать класс CommonActivity который расширяет класс Activity

class CommonActivity extends Activity 
{ 

    // here define your searchBluetooth method 

    public void searchBluetooth() 
    { 

     // your code here 
    } 

} 


If you want to make use of it in Second Activity then 


class SecondActivity extends CommonActivity 
{ 

    // here you can access `searchBluetooth()` method 

} 
0

корпус класса BluetoothListener?

public BluetoothListener implements OnClickListener { 
    @Override 
    public void onClick(View v) { 
     do something you want... 
    } 
} 

затем вызвать класс в двух разных классах, например,

button.setOnClickListener(new BluetoothListener()); 

Я недавно начал изучать андроид и этот ответ может иметь некоторую ошибку, если да, то пожалуйста, дайте мне знать, спасибо.