我目前在Ruby Curses中打印0-3行。我还创建了一个带有动物名字的数组。 我的程序目前输出
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import io.socket.client.IO;
import io.socket.client.Manager;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;
import io.socket.engineio.client.Transport;
public class LoiginActivity extends AppCompatActivity {
private Socket socket;
{
try {
socket = IO.socket("http://localhost:3000");
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loigin);
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.i(TAG,"connected");
}
});
socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.i(TAG, "Connectin error" + args[0]);
}
});
socket.connect();
}
}
我希望它输出类似
的内容dog + 0cat + 0bird + 0rat + 0
dog + 1cat + 1bird + 1rat + 1
dog + 2cat + 2bird + 2rat + 2
dog + 3cat + 3bird + 3rat + 3
有没有办法在不同的行上列出数组的每个元素,并且能够选择每一行?
这是我正在处理的功能
dog + 0
cat + 1
bird + 2
rat + 3
我尝试过使用arr.each和arr.each_index,但它给了我相同的输出。
这是完整的程序。
更新
下面的菜单看起来像我想要的但是当按'w'或's'滚动菜单时,它会同时选择所有4个元素。有没有办法让它一次只能选择1个元素?
def draw_menu(menu, active_index=nil)
4.times do |i|
menu.setpos(i + 1, 1)
menu.attrset(i == active_index ? A_STANDOUT : A_NORMAL)
arr = []
arr << "dog"
arr << "cat"
arr << "bird"
arr << "rat"
arr.each do |item|
menu.addstr "#{item} + #{i}"
end
end
end
答案 0 :(得分:1)
不确定4.times
试图做什么,但我认为它是将相同的文本设置为屏幕上相同的位置4次。对于4中的每一个,如果当前的4个项目与active_index
相同,则您将其中所有4个设置为相同的样式(A_STANDOUT
而不是A_NORMAL
)。
对我来说似乎有用的东西以及我认为的目的是:
def draw_menu(menu, active_index=nil)
%w(dog cat bird rat).each_with_index do |element, index|
menu.setpos(index + 1, 1)
menu.attrset(index == active_index ? A_STANDOUT : A_NORMAL)
menu.addstr("%-4s + #{index}" % element)
end
menu.setpos(5, 1) # set the cursor on the line after the menu items
end
然后在你的draw_info
我无法看到文本输出的位置,但如果我将其更改为setpos(5, 1)
,则会在菜单后面的行显示:
def draw_info(menu, text)
menu.setpos(5, 1)
menu.attrset(A_NORMAL)
menu.addstr text
end