Я хочу сделать так, чтобы при нажатии на кнопку открывался поиск объектов. Когда вы нажимаете на один из объектов, текст кнопки меняется на имя объекта. Также, если пользователь ничего не ввел или не ввел имя объекта, которого нет в этом списке, то текст кнопки должен быть «Нумерация инструментов». Но текст моей кнопки равен тому, что ввел пользователь. Код:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.Arrays;
public class MainActivity extends AppCompatActivity {
String[] items;
ArrayList<String> listItems;
String[] prices;
ArrayList<String> listprices;
ArrayAdapter<String> adapter;
ListView listView;
EditText editText;
EditText countText;
TextView sumeText;
Button searchBtn;
Button anotherPage;
Button turnOffSearchButton;
boolean isTextRight;
boolean appllyText;
int productNumber;;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(ListView)findViewById(R.id.listview);
editText=(EditText)findViewById(R.id.txtsearch);
countText = findViewById(R.id.txtthings);
sumeText = findViewById(R.id.textSume);
searchBtn = findViewById(R.id.toolButton);
anotherPage = findViewById(R.id.buttonToPage);
turnOffSearchButton = findViewById(R.id.turnOffSearch);
anotherPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getApplicationContext(), Tools.class));
overridePendingTransition(0, 0);
}
});
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
editText.setText(listView.getItemAtPosition(position).toString());
}
});
initList();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.toString().equals("")){
initList();
}
else {
searchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
public void searchItem(String textToSearch) {
for (String item : items) {
if (!item.contains(textToSearch)) {
listItems.remove(item);
}
}
adapter.notifyDataSetChanged();
}
public void initList(){
items=new String[]{"Canada","China","Japan","USA"};
listItems=new ArrayList<>(Arrays.asList(items));
adapter=new ArrayAdapter<String>(this,
R.layout.list_item, R.id.txtitem, listItems);
listView.setAdapter(adapter);
}
public void searchDisactivated(View view){
countText.setVisibility(View.VISIBLE);
sumeText.setVisibility(View.VISIBLE);
editText.setVisibility(View.INVISIBLE);
listView.setVisibility(View.INVISIBLE);
searchBtn.setVisibility(View.VISIBLE);
turnOffSearchButton.setVisibility(View.INVISIBLE);
isTextRight = true; //Problem place
if(isTextRight == true) {
for (int i = 0; i < items.length; i++) { //Problem place
String listText = items[i];
if (editText.getText().toString() == listText) { //Problem place
productNumber = i; //Problem place
appllyText = true; //Problem place
} else { //Problem place
appllyText = false; //Problem place
}
}
}
if(appllyText = true){ //Problem place
searchBtn.setText(editText.getText()); //Problem place
Prices(); //Problem place
isTextRight = false; //Problem place
} else { //Problem place
searchBtn.setText("Tool Numaration"); //Problem place
} //Problem place
}
public void Prices(){
prices =new String[]{"49","65","39","97"};
listprices=new ArrayList<>(Arrays.asList(prices));
sumeText.setText("Sume: " + prices[productNumber]);
}
public void searchActivate(View view){
appllyText = false;
isTextRight = false;
countText.setVisibility(View.INVISIBLE);
sumeText.setVisibility(View.INVISIBLE);
editText.setVisibility(View.VISIBLE);
listView.setVisibility(View.VISIBLE);
searchBtn.setVisibility(View.INVISIBLE);
turnOffSearchButton.setVisibility(View.VISIBLE);
}
}