- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我迄今为止所取得的成就
图像适配器
public class ImageAdapter extends BaseAdapter {
private Context mContext;
TextView text;
ImageView imageView;
// Constructor
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(mContext, R.layout.grid_view, null);
RelativeLayout rl = (RelativeLayout) view.findViewById(R.id.relaGrid);
ImageView image = (ImageView) rl.findViewById(R.id.chooseImage);
TextView text = (TextView) rl.findViewById(R.id.chooseText);
image.setImageResource(mThumbIds[position]);
text.setText(mThumbTxt[position]);
Typeface customFont = Typeface.createFromAsset(mContext.getAssets(), "fonts/faruma.ttf");
text.setTypeface(customFont);
return rl;
}
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
R.drawable.ic_action_gallery, R.drawable.ic_action_gallery,
R.drawable.ic_action_gallery, R.drawable.ic_action_gallery
};
private String[] mThumbTxt = {
"Morning", "Evening", "Test deler", "Hepsi", "Test 2",
"Test 3", "Test 4", "Test 5"
};
}
查看
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/relaGrid"
android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="6dp"
android:translationZ="5dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="onCardclick"
android:clickable="true"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/chooseImage"
android:layout_width="match_parent"
android:layout_height="85dp">
</ImageView>
<TextView android:id="@+id/chooseText"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:textSize="18sp"
android:layout_below="@+id/chooseImage"
android:gravity="center"
android:supportsRtl="true"
android:singleLine="true"
android:paddingRight="5dp"
android:paddingLeft="5dp"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever">
</TextView>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
我正在尝试通过 onclick 监听器启动另一个 Intent 来对 CardView 产生链式 react 。但是当启用波纹效果时,onclick事件不起作用。我只看到链式 react 。 Onclick 监听器不起作用。如何实现两者兼得?请帮忙
完整的主要 Activity
package com.mycompany.alun;
import android.content.*;
import android.database.sqlite.*;
import android.graphics.*;
import android.os.*;
import android.support.v7.app.*;
import android.support.v7.widget.*;
import android.support.v7.widget.SearchView;
import android.util.*;
import android.view.*;
import android.widget.*;
import android.widget.AdapterView.*;
import java.io.*;
import android.support.v7.widget.Toolbar;
import android.app.*;
import android.support.v4.view.*;
public class MainActivity extends AppCompatActivity {
SQLiteDatabase sqLiteDatabase;
DatabaseHelper mDBHelper;
TextView APP_NAME;
SearchView searchView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDBHelper = new DatabaseHelper(this);
//Check exists database
File database = getApplicationContext().getDatabasePath(DatabaseHelper.DBNAME);
if(false == database.exists()) {
mDBHelper.getReadableDatabase();
//Copy db
if(copyDatabase(this)) {
Toast.makeText(this, "Copy database succes", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Copy data error", Toast.LENGTH_SHORT).show();
return;
}
}
// Custom title
TextView textCustomTitle = (TextView) findViewById(R.id.appName);
Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/faruma.ttf");
textCustomTitle.setTypeface(customFont);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
if (!isTaskRoot()) {
finish();
return;
}
}
public void onCardclick(AdapterView<?> a, View v, int position, long id) {
switch(position)
{
case 0:
Intent newActivity = new Intent(MainActivity.this,ViewDataActivity.class);
startActivity(newActivity);
break;
case 1:
Intent newActivity2 = new Intent(MainActivity.this,MorningActivity.class);
startActivity(newActivity2);
break;
case 2:
Intent new1Activity = new Intent(MainActivity.this,ViewDataActivity.class);
startActivity(new1Activity);
break;
case 3:
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.daily_life); // the original file yourimage.jpg i added in resources
Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);
String yourText = "My custom Text adding to Image";
Canvas cs = new Canvas(dest);
Paint tPaint = new Paint();
tPaint.setTextSize(35);
tPaint.setColor(Color.BLUE);
tPaint.setStyle(Paint.Style.FILL);
cs.drawBitmap(src, 0f, 0f, null);
float height = tPaint.measureText("yY");
float width = tPaint.measureText(yourText);
float x_coord = (src.getWidth() - width)/2;
cs.drawText(yourText, x_coord, height+15f, tPaint); // 15f is to put space between top edge and the text, if you want to change it, you can
try {
dest.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/ImageAfterAddingText.jpg")));
// dest is Bitmap, if you want to preview the final image, you can display it on screen also before saving
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case 4:
new CustomToast(getApplicationContext(), getApplicationContext().getString(R.string.add_favorites));
break;
case 5:
Intent searchActivity = new Intent(MainActivity.this,SearchActivity.class);
startActivity(searchActivity);
break;
default:
Toast.makeText(MainActivity.this, "Wrong Input", Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.nav_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
return super.onCreateOptionsMenu(menu);
}
public void getInput(String searchText)
{
Intent in = new Intent(this, SearchActivity.class);
in.putExtra("SEARCH", searchText);
startActivity(in);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_favorites) {
Intent newActivity = new Intent(MainActivity.this,FavoritesActivity.class);
startActivity(newActivity);
}
if (item.getItemId() == R.id.action_search) {
Intent newActivity = new Intent(MainActivity.this,SearchActivity.class);
startActivity(newActivity);
}
return super.onOptionsItemSelected(item);
}
private boolean copyDatabase(Context context) {
try {
InputStream inputStream = context.getAssets().open(DatabaseHelper.DBNAME);
String outFileName = DatabaseHelper.DBLOCATION + DatabaseHelper.DBNAME;
Log.d("ViewDataActivity", "outFileName : "+outFileName);
OutputStream outputStream = new FileOutputStream(outFileName);
byte[]buff = new byte[1024];
int length = 0;
while ((length = inputStream.read(buff)) > 0) {
outputStream.write(buff, 0, length);
}
outputStream.flush();
outputStream.close();
Log.w("ViewDataActivity","DB copied");
return true;
}catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
最佳答案
内部适配器方法 getView()
CardView cardView = view.findViewById(R.id.card_view_id_from_grid_view)
cardView.setOnClickListener(...)
编辑
interface CustomClick{
void onClick(int position)
}
private CustomClick customClick;
// Constructor
public ImageAdapter(Context c, CustomClick customClick) {
mContext = c;
this.customClick = customClick;
}
cardView.setOnClickListener(view -> customClick.onClick(position))
MainActivity 实现 CustomClick
new ImageAdapter(this, this)
关于java - Cardview onclick 事件不适用于 clickable=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60909207/
我在我的 Xcode 项目目录中输入了以下内容: keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA \
假设我有一个像这样的 DataFrame(或 Series): Value 0 0.5 1 0.8 2 -0.2 3 None 4 None 5 None
我正在对一个 Pandas 系列进行相对繁重的应用。有什么方法可以返回一些打印反馈,说明每次调用函数时在函数内部进行打印还有多远? 最佳答案 您可以使用跟踪器包装您的函数。以下两个示例,一个基于完成的
我有一个 DataFrame,其中一列包含列表作为单元格内容,如下所示: import pandas as pd df = pd.DataFrame({ 'col_lists': [[1, 2
我想使用 Pandas df.apply 但仅限于某些行 作为一个例子,我想做这样的事情,但我的实际问题有点复杂: import pandas as pd import math z = pd.Dat
我有以下 Pandas 数据框 id dist ds 0 0 0 0 5 1 0 0 7 2 0 0
这发生在我尝试使用 Gradle 构建时。由于字符串是对象,因此似乎没有理由发生此错误: No signature of method: java.util.HashMap.getOrDefault(
您好,有人可以解释为什么在 remaining() 函数中的 Backbone 示例应用程序 ( http://backbonejs.org/examples/todos/index.html ) 中
我有两个域类:用户 class User { String username String password String email Date dateCreated
问题陈述: 一个 pandas dataframe 列系列,same_group 需要根据两个现有列 row 和 col 的值从 bool 值创建。如果两个值在字典 memberships 中具有相似
apporable 报告以下错误: error: unknown type name 'MKMapItem'; did you mean 'MKMapView'? MKMapItem* destina
我有一个带有地址列的大型 DataFrame: data addr 0 0.617964 IN,Krishnagiri,635115 1 0.635428 IN,Chennai
我有一个列表list,里面有这样的项目 ElementA: Number=1, Version=1 ElementB: Number=1, Version=2 ElementC: Number=1,
我正在编译我的源代码,它只是在没有运行应用程序的情况下终止。这是我得到的日志: Build/android-armeabi-debug/com.app4u.portaldorugby/PortalDo
我正在尝试根据另一个单元格的值更改单元格值(颜色“红色”或“绿色”)。我运行以下命令: df.loc[0, 'Colour'] = df.loc[0, 'Count'].apply(lambda x:
我想弄清楚如何使用 StateT结合两个 State基于对我的 Scalaz state monad examples 的评论的状态转换器回答。 看来我已经很接近了,但是在尝试申请 sequence
如果我已经为它绑定(bind)了集合,我该如何添加 RibbonLibrary 默认的快速访问项容器。当我从 UI 添加快速访问工具项时,它会抛出 Operation is not valid whi
在我学习期间Typoclassopedia我遇到了这个证明,但我不确定我的证明是否正确。问题是: One might imagine a variant of the interchange law
我是一名优秀的程序员,十分优秀!