Android 在启动Intent之前检查editText的值
我有一个活动,可以获取搜索查询和用户希望看到的结果数。我正在查询GoogleBooksAPI,结果的最大数量是40 我如何使它能够使用户输入的数字高于40,默认情况下,将其设置为10,然后启动活动,否则,如果数字介于1和40之间,它将检索输入的数字 下面是包含代码的活动: BookSearch.java 公共类BookSearch扩展了AppCompative活动{Android 在启动Intent之前检查editText的值,android,android-studio,android-intent,Android,Android Studio,Android Intent,我有一个活动,可以获取搜索查询和用户希望看到的结果数。我正在查询GoogleBooksAPI,结果的最大数量是40 我如何使它能够使用户输入的数字高于40,默认情况下,将其设置为10,然后启动活动,否则,如果数字介于1和40之间,它将检索输入的数字 下面是包含代码的活动: BookSearch.java 公共类BookSearch扩展了AppCompative活动{ private String searchQuery; private String numberQuery; @Overrid
private String searchQuery;
private String numberQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_book_search);
Button searchBtn = (Button)findViewById(R.id.search_button);
final SearchView searchView = (SearchView)findViewById(R.id.search_view);
final EditText editText = (EditText)findViewById(R.id.edit_text);
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchQuery = searchView.getQuery().toString();
numberQuery = editText.getText().toString();
Intent bookIntent = new Intent(BookSearch.this, MainActivity.class);
bookIntent.putExtra("searchQuery",searchQuery);
bookIntent.putExtra("numberQuery",numberQuery);
startActivity(bookIntent);
}
});
}
}
MainActivity.java这将接收意图并将其放入构造函数URL
public static final String LOG_TAG = MainActivity.class.getName();
private static final int BOOK_LOADER_ID = 1;
private static final String GOOGLE_BOOKS = "https://www.googleapis.com/books/v1/volumes?q=";
private static final String MAX_RESULTS = "&maxResults=";
private String searchURL;
private String intentNumber;
private String intentSearch;
private BookAdapter mAdapter;
private RecyclerView mRecyclerView;
private TextView mErrorTextView;
private ProgressBar mProgressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
intentSearch = intent.getExtras().getString("searchQuery");
intentNumber = intent.getExtras().getString("numberQuery");
searchURL = GOOGLE_BOOKS + intentSearch + MAX_RESULTS + intentNumber;
final List<Book> books = new ArrayList<>();
mRecyclerView = findViewById(R.id.recyclerView);
mErrorTextView = findViewById(R.id.error_textView);
mProgressBar = findViewById(R.id.progressBar);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter = new BookAdapter(this, books);
mRecyclerView.setAdapter(mAdapter);
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
LoaderManager loaderManager = getLoaderManager();
loaderManager.initLoader(BOOK_LOADER_ID, null, this);
} else {
mProgressBar.setVisibility(GONE);
mErrorTextView.setText(R.string.no_internet_connection);
}
}
@Override
public Loader<List<Book>> onCreateLoader(int id, Bundle args) {
return new BookLoader(this, searchURL);
}
@Override
public void onLoadFinished(Loader<List<Book>> loader, List<Book> books) {
mAdapter.clear();
if (books != null && !books.isEmpty()) {
mProgressBar.setVisibility(GONE);
mErrorTextView.setVisibility(GONE);
mRecyclerView.setVisibility(View.VISIBLE);
mAdapter.addAll(books);
} else {
mProgressBar.setVisibility(GONE);
mRecyclerView.setVisibility(GONE);
mErrorTextView.setVisibility(View.VISIBLE);
}
}
@Override
public void onLoaderReset(Loader<List<Book>> loader) {
mAdapter.clear();
}
public static final String LOG_TAG=MainActivity.class.getName();
私有静态最终int BOOK_LOADER_ID=1;
私有静态最终字符串GOOGLE_BOOKS=”https://www.googleapis.com/books/v1/volumes?q=";
私有静态最终字符串MAX_RESULTS=“&maxResults=”;
私有字符串搜索URL;
私有字符串intentNumber;
私有字符串搜索;
私人书屋;
私人回收视图mRecyclerView;
私有文本视图mErrorTextView;
私人ProgressBar mProgressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent=getIntent();
intentSearch=intent.getExtras().getString(“搜索查询”);
intentNumber=intent.getExtras().getString(“numberQuery”);
searchURL=GOOGLE_BOOKS+intentSearch+MAX_RESULTS+intentNumber;
最终图书列表=新的ArrayList();
mRecyclerView=findViewById(R.id.recyclerView);
mErrorTextView=findviewbyd(R.id.error\u textView);
mProgressBar=findviewbyd(R.id.progressBar);
RecyclerView.LayoutManager LayoutManager=新的LinearLayoutManager(此);
mRecyclerView.setLayoutManager(layoutManager);
mAdapter=新的BookAdapter(此为books);
mRecyclerView.setAdapter(mAdapter);
ConnectivityManager connMgr=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_服务);
NetworkInfo NetworkInfo=connMgr.getActiveNetworkInfo();
if(networkInfo!=null&&networkInfo.isConnected()){
LoaderManager LoaderManager=getLoaderManager();
initLoader(BOOK_LOADER_ID,null,this);
}否则{
mProgressBar.setVisibility(已消失);
mErrorTextView.setText(R.string.no_internet_connection);
}
}
@凌驾
公共加载器onCreateLoader(int-id,Bundle-args){
返回新的BookLoader(此为searchURL);
}
@凌驾
公共void onLoadFinished(加载程序,列表簿){
mAdapter.clear();
if(books!=null&&!books.isEmpty()){
mProgressBar.setVisibility(已消失);
mErrorTextView.setVisibility(已消失);
mRecyclerView.setVisibility(View.VISIBLE);
mAdapter.addAll(书籍);
}否则{
mProgressBar.setVisibility(已消失);
mRecyclerView.setVisibility(已消失);
mErrorTextView.setVisibility(View.VISIBLE);
}
}
@凌驾
公共void onLoaderReset(加载器){
mAdapter.clear();
}
}将addTextChangedListener设置为您的Edittext并处理进一步的事情:-
numberQuery .addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable editable) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
try
{
int n=Integer.valueOf(s);
if(n>=40)
numberQuery.setText("10");
}
catch(Exception e)
{
//handle exception like NumberFormatException, etc.
}
}
});