Несколько макетов и несколько просмотров Android Studio - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь создать приложение и хочу добавить несколько представлений в мое приложение. Я изо всех сил пытаюсь найти способ обработать представления должным образом. Если вы делаете это в пределах одного класса (MainActivity), вам нужно сделать какое-то сокрытие, которое, я думаю, не настолько просто и может быть сделано более solid способом, но я не знаю, как.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);


    editTextAddress = (EditText) findViewById(R.id.address);
    editTextPort = (EditText) findViewById(R.id.port);
    editTextMsg = (EditText) findViewById(R.id.msgtosend);
    buttonCalibrate = (Button)findViewById(R.id.calibrate);
    buttonMove0 = (Button)findViewById(R.id.Move0);
    buttonConnect = (Button) findViewById(R.id.connect);
    buttonDisconnect = (Button) findViewById(R.id.disconnect);
    buttonSend = (Button)findViewById(R.id.send);
    textViewState = (TextView)findViewById(R.id.state);
    textViewRx = (TextView)findViewById(R.id.received);


    buttonDisconnect.setEnabled(false);
    buttonSend.setEnabled(false);

    buttonConnect.setOnClickListener(buttonConnectOnClickListener);
    buttonDisconnect.setOnClickListener(buttonDisConnectOnClickListener);
    buttonSend.setOnClickListener(buttonSendOnClickListener);
    buttonMove0.setOnClickListener(buttonMove0OnClickListener);
    buttonCalibrate.setOnClickListener(buttonCalibrateOnClickListener);

Например, это мой код java, некоторые из этих кнопок не из Activity_main. xml, а из другого файла xml. Приложение просто возвращает нулевой указатель с этими кнопками, что логично.

Я видел много способов, но я не могу решить, какой из них правильный. Как правильно?

Ответы [ 2 ]

0 голосов
/ 07 января 2020

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

Включая another_layout.xml в activity_main.xml макет

...
<include
    android:id="@+id/included_layout"
    layout="@layout/another_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.1"
    android:gravity="bottom"/>
....

, этот код установит макет нижней части основного макета.

Вы можете скрыть этот макет, как вы будете sh

View view = (View) findViewById(R.id.included_layout);
view.setVisibility(View.INVISIBLE);
0 голосов
/ 07 января 2020

вы можете использовать butterKnife , чтобы помочь вам в этом, и вы можете просто сделать это

public class MainActivity extends Activity {  
@BindView(R.id.sample_text) TextView textView;
@BindView(R.id.sample_button) Button button;

@Override 
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
textView.setText("You can change this view accordingly");

@OnClick(R.id.click_button) 
void buttonClick() {  
//..you don't even need the line @InjectView(R.id.click_button) if this 
button isn't being used else where
}

}
}
...