package as.d.d;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class add extends Activity implements OnClickListener{
Button b1,b2;
EditText e2,e3;
TextView t1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add);
b1=(Button)findViewById(R.id.button1);
b2=(Button)findViewById(R.id.button2);
e2=(EditText)findViewById(R.id.editText2);
e3=(EditText)findViewById(R.id.editText3);
t1=(TextView)findViewById(R.id.AtextView1);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
DatabaseHandler db = new DatabaseHandler(this);
List<StudentInfo> studentInfo = db.getAllStudentInfo();
for (StudentInfo cn : studentInfo){
t1.setText("Id:"+(cn.getID()+1));
}
}
@Override
public void onClick(View v) {
if(v==b2){
startActivity(new Intent(add.this, FdActivity.class));
}
else if(v==b1){
String s2=e2.getText().toString();
String s3=e3.getText().toString();
if(s2.trim().equals("")||s3.trim().equals("")){
Toast.makeText(getApplicationContext(), "Please Submit Student Information",Toast.LENGTH_SHORT).show();
}
else{
DatabaseHandler db = new DatabaseHandler(this);
Log.d("Insert: ", "Inserting ..");
db.addContact(new StudentInfo(s2,s3));
Log.d("Reading: ", "Reading all contacts..");
List<StudentInfo> studentInfo = db.getAllStudentInfo();
for (StudentInfo cn : studentInfo){
t1.setText("Id:"+(cn.getID()+1));
}}}}}
在这个添加课程中,我使用Textview作为自动生成的学生ID(数字(int))和两个文本字段,通过按下按钮将学生姓名和电话号码提交到数据库中。这里成功提交了学生ID,姓名和电话号码
在addmark类中,我使用自动完成textview显示我从add class提交的名称。当我选择一个名称假设Farhan(我已经提交到数据库中,id为4,电话号码为99876存储在数据库中)那么我想在两个textview中看到id和电话号码(TextView t1,t2;)?
package as.d.d;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;
import android.widget.Toast;
public class addmark extends Activity{
AutoCompleteTextView a1;
TextView t1,t2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addmark);
a1=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
t1=(TextView)findViewById(R.id.amtextView1);
t2=(TextView)findViewById(R.id.amtextView2);
DatabaseHandler db = new DatabaseHandler(this);
final List<StudentInfo> studentInfo = db.getAllStudentInfo();
final ArrayList<String> s1 = new ArrayList<String>();
for (StudentInfo cn : studentInfo) {
s1.add(cn.getName());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,s1);
a1.setThreshold(1);
a1.setAdapter(adapter);
a1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
}
});
答案 0 :(得分:0)
首先,根据非独特的东西选择学生是一个坏主意。您想在自动填充文本视图中选择名称,然后根据该名称显示手机号码和ID。想象一下,如果您有2个或更多同名学生(不排除)会发生什么。您应该使用在数据库中唯一定义记录的内容(或多种形式的组合)填充自动完成的电视。 至于如何实现这一点,只需验证控件何时失去焦点,然后使用您需要的值设置2个textViews。
a1.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus)
//set the textViews with the values you need
}
});
同样,请记住,不建议根据可在数据库中重复的内容选择您的ID和电话号码(两者都可以是数据库表的唯一标识符)。