我是android的新手,所以我有问题,我想创建一个文本框,我的代码在下面
main_xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<EditText
android:id="@+id/mytextText"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
</LinearLayout>
Java代码是:
package com.example.text;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText edittext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addKeyListener();
}
public void addKeyListener() {
// get edittext component
edittext = (EditText) findViewById(R.id.menu_settings);
// add a keylistener to monitor the keaybord avitvity...
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// if the users pressed a button and that button was "0"
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_0)) {
// display the input text....
Toast.makeText(MainActivity.this,edittext.getText(), Toast.LENGTH_LONG).show();
return true;
// if the users pressed a button and that button was "9"
} else if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_9)) {
// display message
Toast.makeText(MainActivity.this, "Number 9 is pressed!", Toast.LENGTH_LONG).show();
return true;
}
return false;
}
});
}
}
My Output I in ecilips is that:
但我的模拟器中没有创建任何应用程序,我不明白,代码中没有错误,apk正在上传,但没有ouptut plz,帮助我
答案 0 :(得分:1)
可能是因为您可能尚未在清单中将活动声明为LAUNCHER
。
这就是为什么它刚刚安装没有启动。
在清单中将您的活动声明为启动器活动,如下所示:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<intent-filter>
定义活动,服务或广播接收者可以响应的意图类型。意图过滤器声明其父组件的功能 - 活动或服务可以做什么以及接收者可以处理什么类型的广播。
同样在您的活动中,您错误地定义了id
EditText
,它在您的布局文件中有所不同。
将EditText
R.id.menu_settings
的ID更改为R.id.mytextText
。如下所示初始化EditText
:
edittext = (EditText) findViewById(R.id.mytextText);
答案 1 :(得分:0)
edittext = (EditText) findViewById(R.id.menu_settings);
更改为
edittext = (EditText) findViewById(R.id.mytextText);
最有可能
如果不能正常重播
答案 2 :(得分:0)
在Android清单文件中添加您的MainActivity类然后改变编辑文本ID引用它应该在xml和java代码中相同然后只在您的xml编辑文本id mytext中执行一些action.suppose它应该在java类中相同。现在运行它应该启动的程序。