我有一个工作的导航抽屉,使用文档中ArrayAdapter所示.我想为每个导航抽屉项设置图标,所以我需要创建一个自定义适配器来使用,但我不确定如何做到这一点.我在下面运行而不会崩溃应用程序,但导航抽屉打开空,没有任何内容.你能帮帮我吗?提前致谢!ImageView
到目前为止我为自定义适配器做了什么:
public class CustomAdapter extends ArrayAdapter
{
private final Context context;
public CustomAdapter(Context context)
{
super(context, R.layout.drawer_list_item);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.drawer_list_item, parent, false);
TextView textViewHome = (TextView) v.findViewById(R.id.drawerHomeTextView);
ImageView imageViewHome = (ImageView) v.findViewById(R.id.drawerHomeImage);
TextView textViewList = (TextView) v.findViewById(R.id.drawerListTextView);
ImageView imageViewList = (ImageView) v.findViewById(R.id.drawerListImage);
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
设置抽屉MainActivity:
mDrawerList = (ListView) findViewById(R.id.leftDrawer);
mDrawerList.setAdapter(new CustomAdapter(this)); …Run Code Online (Sandbox Code Playgroud) android android-arrayadapter custom-adapter navigation-drawer
我正在构建一个指南针,并且需要根据用户当前所处的22.5度间隔返回基本方向的不同字符串.
作为参考,请看这张照片.
以下是我当前代码的示例:
if ((azimuth >= 348.75 && azimuth <= 360) || (azimuth >= 0 && azimuth <= 11.25))
{
return "N";
}
else if (azimuth < 348.75 && azimuth >= 326.25)
{
return "NNW";
}
Run Code Online (Sandbox Code Playgroud)
这一系列else if陈述以22.5度的间隔继续,直到涵盖所有基本方向.有没有更有效的方法来做到这一点?目前,Android Studio/IntelliJ正在提供错误消息this method is too complex to analyze by data flow algorithm.无论错误信息如何,我认为可能有更优雅的方式来做到这一点,但我现在想不到它.
有任何想法吗?谢谢!
我正在尝试创建一个简单的纸牌游戏,以更好地了解OOP和类.
游戏如下:从牌组发出两张牌.然后发出第三张牌.如果第三张牌位于前两张牌之间,则玩家获胜.如果第三张牌等于前两张牌中的任何一张,或者在该牌组之外,则该牌手输了.
这是我到目前为止:
class Deck(object):
def __init__(self):
self.deck = []
def PopulateDeck(self):
suits = ["Hearts", "Diamonds", "Clubs", "Spades"]
for suit in suits:
for rank in range(2, 15):
if rank == 11:
value = "Jack"
elif rank == 12:
value = "Queen"
elif rank == 13:
value = "King"
elif rank == 14:
value = "Ace"
self.deck.append(str(value) + " of " + suit)
class Card(object):
def __init__(self, rank, value):
self.rank = rank
self.value = value
self.card = self.rank + self.value
Run Code Online (Sandbox Code Playgroud)
我在课堂和OOP上遇到了困难,我不确定这是一个好的开始,还是我应该去哪里.其中大部分是通过阅读其他来源和示例创建的.任何人都可以提供关于我可能想要运行我的游戏的其他课程的建议,以及这些课程如何与彼此互动/继承?谢谢.
如何更改文件的applicationId字段build.gradle?
defaultConfig {
applicationId "com.oldname.appname"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)
我已经将包结构重命名为,com.newname.appname并且所有导入和类似的操作都已更新,但applicationId尚未更新。我无法重构它,只是尝试输入一个新名称会带来很多错误,其中Android Studio会告诉我我的主要内容FragmantActivity“不适用于android.app.Activity”,依此类推。
知道该怎么办吗?提前致谢。
我有一个函数可以接受数组作为{variant, variant, variant}参数。现在,它还可以接受一系列单元格作为A1:A3相同的参数,但无法处理结果。
我认为我需要做的是循环遍历范围,并将每个值添加到数组中,例如:
A1:A3变成{Value in A1, Value in A2, Value in A3}A1:B2变成{A1, A2, B1, B2}A:A变成仅包含 A 列已填充单元格的数组(相同的原理也适用于上面的两个范围。仅将已填充单元格添加到数组中)这样,我可以像用户在输入参数时自己键入数组一样处理结果。
如果事先不知道范围的大小,我该如何做到这一点?我希望用户能够提供可以转换为数组的任何大小/形状的范围。
IsArray(){variant, variant, variant}对于和的两个输入都返回 true A1:A3,所以然后我检查它是否是一个范围If TypeName(parameter) = "Range" Then,但之后我在处理该范围时遇到了麻烦,并且不知道如何继续将其转换为数组。
我尝试过研究,但我是 VBA 新手,我认为我在搜索中使用了不正确的术语。任何建议表示赞赏,谢谢!
更新以包含一些代码。请注意,这将是该函数要做的第一件事。后面的代码与问题无关,只是后面的代码需要处理一组值。
If IsArray(my_values) Then
'If it's a Range then I need to get the values of each cell and put them into an array.
'If they passed an array like `{1,1,1}`, move …Run Code Online (Sandbox Code Playgroud)