Java GridView中的多个文本视图选择
我设法创建了一个带有所选号码预览的TextView网格。正如您从代码中看到的,按一个数字就会得到一个简单的祝酒词。我需要做一个数字的多重选择,也许创建一个数组来推迟到另一个活动。你能帮我吗 XML: 主要活动:Java GridView中的多个文本视图选择,java,android,arrays,arraylist,multipleselection,Java,Android,Arrays,Arraylist,Multipleselection,我设法创建了一个带有所选号码预览的TextView网格。正如您从代码中看到的,按一个数字就会得到一个简单的祝酒词。我需要做一个数字的多重选择,也许创建一个数组来推迟到另一个活动。你能帮我吗 XML: 主要活动: package kangel.customtest; import android.content.Context; import android.os.Handler; import android.support.v7.app.ActionBarActivity; impo
package kangel.customtest;
import android.content.Context;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView)findViewById(R.id.gridview);
gridView.setAdapter(new NumberAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LayoutInflater inflater = getLayoutInflater();
final View layout = inflater.inflate(R.layout.custom_toast_layout,
(ViewGroup) findViewById(R.id.custom_toast_layout));
TextView selectedNumber = (TextView) layout.findViewById(R.id.selected_number);
selectedNumber.setText(""+(position+1));
Context context = getBaseContext();
String text = ""+(position+1);
int duration = Toast.LENGTH_SHORT;
final Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setView(layout);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
packangel.customtest;
导入android.content.Context;
导入android.os.Handler;
导入android.support.v7.app.ActionBarActivity;
导入android.os.Bundle;
导入android.view.Gravity;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.GridView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类MainActivity扩展了ActionBarActivity{
GridView;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView=(gridView)findViewById(R.id.gridView);
setAdapter(新的NumberAdapter(this));
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
LayoutInflater充气机=getLayoutInflater();
最终视图布局=充气机。充气(R.layout.custom\u toast\u布局,
(视图组)findViewById(R.id.custom_toast_layout));
TextView selectedNumber=(TextView)布局。findViewById(R.id.selected\u编号);
selectedNumber.setText(“+(位置+1));
Context=getBaseContext();
字符串文本=”“+(位置+1);
int duration=Toast.LENGTH\u SHORT;
final Toast=Toast.makeText(上下文、文本、持续时间);
toast.setGravity(重心垂直,0,0);
toast.setView(布局);
toast.show();
Handler=newhandler();
handler.postDelayed(新的Runnable(){
@凌驾
公开募捐{
toast.cancel();
}
}, 1000);
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
多选数字是什么意思?这是我的结果:这是我想要的结果:多选数字是什么意思?这是我的结果:这是我想要的结果:
package kangel.customtest;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.support.v4.view.GravityCompat;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Andrea on 22/06/2015.
*/
public class NumberAdapter extends BaseAdapter {
private Context context;
public NumberAdapter(Context context){
this.context = context;
}
@Override
public int getCount() {
return 60;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView numberView;
if (convertView == null){
numberView = new TextView(context);
numberView.setLayoutParams(new GridView.LayoutParams(110, 110));
numberView.setPadding(0, 0, 0, 0);
numberView.setTextColor(Color.WHITE);
numberView.setBackgroundResource(R.drawable.rounded_edittext_zaffiro);
numberView.setGravity(Gravity.CENTER);
numberView.setTextSize(25);
}
else {
numberView = (TextView) convertView;
}
numberView.setText(""+(position+1));
return numberView;
}
}
package kangel.customtest;
import android.content.Context;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView)findViewById(R.id.gridview);
gridView.setAdapter(new NumberAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
LayoutInflater inflater = getLayoutInflater();
final View layout = inflater.inflate(R.layout.custom_toast_layout,
(ViewGroup) findViewById(R.id.custom_toast_layout));
TextView selectedNumber = (TextView) layout.findViewById(R.id.selected_number);
selectedNumber.setText(""+(position+1));
Context context = getBaseContext();
String text = ""+(position+1);
int duration = Toast.LENGTH_SHORT;
final Toast toast = Toast.makeText(context, text, duration);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setView(layout);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}