所以当用户完成写作时,我试图启动一个Activity。 但是,它似乎再次运行程序,而不是启动Activity。 我说的是这个原因,而不是启动正确的活动,它启动了我的程序的第一个活动。
search.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
actionId == EditorInfo.IME_ACTION_DONE ||
event.getAction() == KeyEvent.ACTION_DOWN &&
event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (!event.isShiftPressed()) {
// the user is done typing.
text = search.getText().toString();
new SearchActivity(text);
Intent it = new Intent(MainActivity.this, SearchActivity.class);
startActivity(it);
return true; // consume.
}
}
return false;
}
});
以下是SearchActivity的代码
public class SearchActivity extends AppCompatActivity {
private String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_activity);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public SearchActivity(String text) {
this.text = text;
}
}
提前谢谢
答案 0 :(得分:0)
这是我使用的一个例子。
startActivity(new Intent(this, AboutActivity.class));
return true;'
尝试将代码更改为此
Intent it = new Intent(this, SearchActivity.class);
答案 1 :(得分:0)
所以最后我能够纠正这个问题。 首先我拿出了if(!event.isShiftPressed()),发送错误并且事件为空。我注意到这很好,因为程序仍然按照我想要的方式工作。第二个问题是当我启动活动时它给出了错误(类没有零参数)。通过解决这个问题,我把put和空参数构造函数数组。我从这个thread中学到了这一点。它解释了为什么我应该这样做。
我在这里放了新代码。
search.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH ||
actionId == EditorInfo.IME_ACTION_DONE ||
event.getAction() == KeyEvent.ACTION_DOWN &&
event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
// the user is done typing.
text=search.getText().toString();
new SearchActivity(text);
Intent it = new Intent(MainActivity.this, SearchActivity.class);
startActivity(it);
return true; // consume.
}
return false;
}
});
现在是SearchActivity
public class SearchActivity extends AppCompatActivity {
private String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_activity);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
public SearchActivity(String text){
this.text=text;
}
public SearchActivity(){
this.text=null;
}
}