Могу ли я назвать значение другого класса в Oncreate ()?
-
26-10-2019 - |
Вопрос
Я пытаюсь выяснить, есть ли способ позвонить «отправить», сделанный в CreatenewSubmitButton (); в Oncreate (); функция?
Поэтому я хочу отправить значение в EditText на TextView, когда вы нажимаете значение отправки кнопки, поэтому я установил там OnClick, но я не мог позвонить в отправку в Oncreate?
Смотрите мой пример кода, чтобы понять, что я имею в виду:
package com.lars.myApp;
import com.lars.myApp.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
public class myAppActivity extends Activity {
int currentValue = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText valueOne = (EditText) findViewById(R.id.valueOne);
Button addOne = (Button) findViewById(R.id.addOne);
Button minusOne = (Button) findViewById(R.id.minusOne);
Button addButton = (Button) findViewById(R.id.add);
final TableLayout tableLayout1 = (TableLayout) findViewById(R.id.tableLayout1);
TextView textView = new TextView(this);
textView.setText("New text");
addOne.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
addValue();
valueOne.setText("" + currentValue);
}
});
minusOne.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
minusValue();
valueOne.setText("" + currentValue);
}
});
addButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
tableLayout1.addView(createNewRow());
}
});
// I OUTCOMMENTED THIS, BECAUSE IT DIDN'T WORK, submitValue: "CANNOT BE RESOLVED"
/*submitValue.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
tableLayout1.addView(createNewTextView(newValue.getText().toString()));
}
});*/
}
public TableRow createNewRow() {
final TableRow newRow = new TableRow(this);
newRow.addView(createNewContainer());
return newRow;
}
public LinearLayout createNewContainer(){
final LinearLayout newContainer = new LinearLayout(this);
newContainer.addView(createNewEditableText());
newContainer.addView(createNewSubmitButton());
return newContainer;
}
public EditText createNewEditableText() {
final EditText newValue = new EditText(this);
newValue.setHint("New");
return newValue;
}
public Button createNewSubmitButton(){
final Button submitValue = new Button(this);
submitValue.setText("Submit");
return submitValue;
}
public TextView createNewTextView(String text) {
final TextView textView = new TextView(this);
textView.setText(text);
return textView;
}
public void addValue(){
if(currentValue <= 999){
currentValue = currentValue + 1;
}
}
public void minusValue(){
if(currentValue >= 1){
currentValue = currentValue - 1;
}
}
}
Я надеюсь, что кто-то может мне помочь
Решение
На самом деле, вы не можете назвать то, что еще не создано, по вашему мнению.
Тем не менее, у вас есть 2 варианта:
A - Создайте его в вашем onCreate(...)
Но добавьте его позже к вашему взгляду
B- Создайте его, добавьте, но используйте параметр FOLOUNE:
sibmitButton.setVisibility(View.GONE);
Что классно с этим я, что вы можете добавить кнопку, играть с ней (программно), но пользователь не может ее коснуться! Это даже не занимает «пространство» на ваш взгляд!
И при необходимости просто используйте:
sibmutButton.setVisibility(View.VISIBLE);
Это то, что ты хочешь?